我的历史看起来有点像这样但是时间10:
i - j - e'- k - h'- l - m feature-branch
/
a - b - c - d - e - f - g - h master
Run Code Online (Sandbox Code Playgroud)
(撇号意思是樱桃选秀权)我想改变这个:
i - j - k - l - m feature-branch
/
a - b - c - d - e - f - g - h master
Run Code Online (Sandbox Code Playgroud)
我不介意该功能是否被压缩为1次提交.常规rebase的主要问题是它一次尝试重新设置一个提交,我必须一遍又一遍地修复和重新修复类似的冲突.
我想要的只是取我的分支尖端和主人的尖端之间的差异,并将其应用于主人之上.
这其实很容易.
合并master成feature-branch.您将立即解决所有合并冲突.(我强烈建议你到此为止.)
i - j - e'- k - h'- l - m - n feature-branch
/ /
a - b - c - d - e - f - g - h -------- master
Run Code Online (Sandbox Code Playgroud)然后,git reset --soft master.这将使它成为feature-branch指向master,但它将保留索引中的所有更改,准备提交.
i - j - e'- k - h'- l - m - n (orphaned)
/ /
a - b - c - d - e - f - g - h -------- master, feature-branch
\
(index)
Run Code Online (Sandbox Code Playgroud)git commit
i - j - e'- k - h'- l - m - n (orphaned)
/ /
a - b - c - d - e - f - g - h -------- master
\
n' feature-branch
Run Code Online (Sandbox Code Playgroud)#2和#3的唯一目的是摧毁历史feature-branch.如果你确定你永远不会需要那段历史,那很好.但是,为了删除实际发生的事情的准确记录,去除所有这些额外麻烦似乎是浪费.