使用 master 进行变基时,合并提交丢失,而代码更改保持不变。
变基前的初始分支(非主分支)状态:
commit 52c********************************
Merge: 1******
Author: M*********************************
Date: Tue Feb 9 17:49:25 2016 +0530
Merge pull request #1342 from *********************
Changes for ******************
commit 6be**********************************
Author: Ma***********************************
Date: Tue Feb 9 14:39:48 2016 +0530
Changes for W********************************
commit ef2***********************************
一旦我们使用 master 进行 rebase,以“52c..”开头的合并提交就会在 git 日志中丢失。
我在这里展示的
git rebase --rebase-merges
与Git 2.18(2018年第2季度)取代了我在2016年在评论中提到的旧的
--preserve-merges
。
默认情况下,变基只会从因此,虽然
todo
列表中删除合并提交,并将变基提交放入单个线性分支中。使用
--rebase-merges
,变基将通过重新创建合并提交来尝试保留要变基的提交内的分支结构。这些合并提交中任何已解决的合并冲突或手动修改都必须手动解决/重新应用。
git rebase -p
在 2016 年工作,但当前的答案是
git rebase -r
。