在协作Git中的不同点合并分支时的行为

时间:2015-03-26 18:08:17

标签: git

想象一下Tim和Rob都在分开的Git分支(tims-branchrobs-branch)上工作,它们都分支了一个开发分支(develop)。

现在,想象Rob需要Tim添加一些内容(Tim负责后端,Rob负责前端并需要添加新的api端点)。

如果Tim签出develop并创建了一个新分支(api-endpoint)并添加了这个新的api端点,那么Rob可以轻松地将这些更改合并到robs-branch中{{1} }。

但是,如果蒂姆没有结账git merge api-endpoint而是在develop之外创建了api-endpoint分支,这比tims-branch更早(即有很多蒂姆正在研究的新东西,然后Rob试图将它合并在一起:

  1. 这没关系,因为develop只包含Tim为Rob添加的新数据。
  2. Rob不仅会获得他想要的新代码,还会获得api-endpoint中的所有其他代码,因为tims-branch来自该分支。
  3. 整个互联网都会破裂。
  4. 别的。

1 个答案:

答案 0 :(得分:1)

  
      
  1. Rob不仅会获得他想要的新代码,还会获得tims-branch的所有其他代码,因为api-endpoint来自   那个分支。
  2.   
蒂姆可以尝试通过执行api-endpoint的交互式变更来解决此问题,该变更删除了tims-branchdevelop分歧后的所有提交。在api-endpoint分支

git rebase -i HEAD~N

其中N应该是一个数字,大于或等于返回develop所需的提交次数。

蒂姆可能不得不解决冲突并继续几次变更,但是api-endpoint应该以预期的方式合并为Rob。