我的git分支看起来像这样:
master-*-*-*-*-*-*-implement_x
\ \-*-further_foo_fixes_that_depend_on_x
\ \-*-*-further_bar_fixes_that_depend_on_x
\
\-implement_x_rebased
Run Code Online (Sandbox Code Playgroud)
它以这种方式结束,因为我认为我的分支implement_x将在上游合并,但我被要求将其压缩到单个提交,因此implement_x_rebased.但是,我已经启动了几个分支机构,以便进一步修复和开发依赖于我的工作,同时等待implement_x合并.
现在我想重新开始进一步的工作implement_x_rebased.我认为这是一个空操作,因为implement_x并implement_x_rebased分别在完全相同的状态-将不会有合并冲突,只应用之间的变化implement_x和further_foo_fixes_that_depend_on_x等之上implement_x_rebased.然而,似乎git并不那么聪明,并且它试图从基础一路变换 - 引入不必要的合并冲突.
我认为简单的出路是rebase&squash进一步修复implement_x然后隐藏它们,然后应用stashes implement_x_rebased,但我很好奇是否有任何正确的方法让git意识到implement_x并且implement_x_rebased实际上处于相同的状态?
Mic*_*ski 10
这似乎是一个--onto选项的任务git rebase.
git rebase --onto implement_x_rebased implement_x further_bar_fixes_that_depend_on_x
Run Code Online (Sandbox Code Playgroud)
您可能希望查看git rebase手册中的--onto示例.