分支A从master分叉,分支B从分支A分叉。一旦B生成,A对自己做了一些提交。 Master可以从其他分支进行额外的提交,与A和B无关。下图说明了这种情况:
答案 0 :(得分:2)
长话短说:这取决于你的流量。
B在结账前有所有A的提交,但是,由于A的提交不在B中(在结账后提交),它们是不同的分支,应该被视为。
将B合并为Master将向Master添加所有B的提交,并在结帐之前将来自的A提交。
将A合并到Master将添加所有A的提交,并且在将B合并到Master时,唯一要添加的提交是两个分支之间的差异(B中的提交不在A中)。
根据你在做什么,以及每个分支的变化以及实际有意义的内容,你合并到哪个分支,只需记住以上内容。
祝你好运!答案 1 :(得分:0)
我通常会在合并之前对它们进行修改。
git checkout A
git rebase master
git checkout master
git merge --no-ff A # --no-ff is optional.
# With --no-ff, there will be a merge commit.
# Without --no-ff, history will be linear.
然后我会为分支B
做同样的事情。
通过这种方式,您最终可以减少纠结的历史记录,并确保合并点没有冲突。
在rebase期间应用每个提交时会出现任何冲突。这通常会使冲突更容易处理。更重要的是,由于合并提交中不会发生冲突,因此所有更改都可以链接回特定的非合并提交,这样可以在以后搜索历史记录时更轻松。
在重新定位分支时,请务必牢记其含义。重新绑定有效地重放新状态之上的每个提交。即使没有语法冲突,也可能存在语义冲突。也就是说,就Git而言,一切都可能进展顺利,但结果并没有像预期的那样发挥作用。
重新定位后,请始终验证每次提交以确保没有任何内容损坏。
进一步阅读: