可以合并/重组非直接关系分支吗?

时间:2010-05-20 13:56:02

标签: git git-rebase git-branch

作为一个集成测试,我想在与我的主人合并之前加入几个分支。

所有这些都与主人分道扬and,并以自己的方式。这是一个正确的合并不同的分支,没有直接关系(例如父/子)??

重新加入分支有什么好的做法吗?

提前致谢, 劳尔。

2 个答案:

答案 0 :(得分:1)

如果这些分支全部来自大师,他们确实有一个共同的祖先

     y--y--y
    /
x--o--x--x--x--x--x--x
          \
           z--z--z

('o'是这里的共同祖先)
在这种情况下,集成分支中的合并是一种很好的方法(重新定义这种长期存在的分支将涉及重写过多的公共历史)

如果分支是真正分开的,那么 git移植点理论上可以允许共同的历史记录:请参阅How to merge two branches without a common ancestor?
但这并不理想,因为嫁接点没有得到承诺 filter-branch可能会使修改成为永久修改,但重写历史记录。

答案 1 :(得分:0)

如果这些分支都来自大师,他们确实有一个共同的祖先。


但回答你的问题(但不是你的问题),可以合并两个没有共同祖先的历史,例如两个不同的项目,例如使用git merge的“子树”合并策略。

要将一个分支重新放在另一个没有共同祖先的分支上,您需要使用--root git rebase选项。