当分支的父母被压扁时该怎么办?

时间:2014-12-04 17:23:46

标签: git branching-and-merging rebase git-rebase

好的,我有分支feature/12,它或多或少已完成,所以我分支它并开始工作 feature/13,取决于feature/12

代码审核发生,并对feature/12进行了一些小的更改。所以我应用这些更改,然后将master压缩到单个功能提交中,就像公司中的协议(git rebase -i master)一样。

现在回到feature/13,如何合并feature/13的历史记录,以免与feature/12master发生历史冲突?我只是git rebase功能/ 12`并修复任何冲突吗?

2 个答案:

答案 0 :(得分:3)

是的,只是反对主人。

Rebase将尝试在被压扁的提交之上应用未取消的提交,并且可能会看到冲突(尽管独立或最后一个将被识别为已经应用并自动跳过)。你可以:

  • 只是像往常一样修复冲突,这应该不会导致分阶段的更改,
  • 识别旧提交,git rebase --skip出现时,或
  • 因为您正在使用交互式rebase,所以删除旧的提交'来自pick文件的git-rebase-todo行。

如果您感到非常谨慎,并且您希望确保rebase操作不会意外添加或删除您在{{}上的任何更改 1}},你可以从pre-rebase版本中区分差异,现在在完成rebase操作后立即使用这样的命令:

feature/13

这不会给出完全干净的输出 - 它会报告上下文行中的差异,以及I don't know of a better way - 但肯定会显示由于rebase而丢失(或获得)的任何更改。

答案 1 :(得分:1)

  

我只是git rebase feature/12并修复任何冲突吗?

那就行了,但请注意,合并的feature/12中的其他更改现在也在master,并且任何冲突都已在那里得到解决。基于任何依赖项的生产版本,您的工作也很简洁。如果它后来证明你需要再次对feature/12中的新作品进行重新修改,那么无论如何你都必须这样做。