如何在保留合并历史记录的同时将上游分支变基为 master?

How to rebase an upstream branch to master while keeping the merge histories?

鉴于上游功能分支首先创建并从 master 分支出来,其他人一直在将他们的更改合并到它。现在 master 已经更新了,因为其他基本功能,这个功能分支也需要这些功能,你如何在保留所有历史记录的同时将这个上游功能分支 rebase 到最新的 master head?

例如

        ----  changes merged to feature
       /    \
      +------+---- feature
     /
----+---- master

现在

        ----  changes merged to feature
       /    \
      +------+---- feature
     /
----+----+------+---- master
          \    /
           ---- other features merged to master

想要变基以便功能分支的更改历史不会丢失

                    ----  changes merged to feature
                   /    \
                  +------+---- feature
                 /
---------+------+---- master
          \    /
           ---- other features merged to master

确认您的版本 git >= 2.19(2.22 更适合)并执行:

git checkout feature
git rebase --rebase-merges master

一个来源:https://www.infoq.com/news/2019/07/git-2-22-rebase-merges/