在git存储库中,将分支 A 合并到 B ,与合并 B 相同的 A 的
答案 0 :(得分:8)
不,如果你将A合并到B中,那么在结束分支A中只有A的变化,而B将同时进行A + B的变化。
如果将B合并为A,则A同时具有A + B更改,而B将仅进行B的更改。
开始:
/A1-A2-A3
X
\B1-B2-B3
带有合并提交的A到B:
/A1-A2-A3
X
\B1-B2-B3-A*(1,2,3)
快速前进的A到B:
/A1-A2-A3
X
\A1-A2-A3-B1'-B2'-B3'
使用合并提交B到A:
/A1-A2-A3-B*(B1,B2,B3)
X
\B1-B2-B3
B到A快进:
/B1-B2-B3-A1'-A2'-A3'
X
\B1-B2-B3
答案 1 :(得分:0)
当合并生成新的合并提交时,有一个名为first parent
的概念。
您可以通过命令git show merge-commit-hash
检查合并提交的父级,将merge-commit-hash
替换为实际的提交哈希。
然后您会得到类似以下的内容:
提交[提交]
合并:[parent1] [parent2]
假设您具有以下提交历史记录,C1是C2和C3的父级。分支A指向C2,分支B指向C3。
C1 <-C2
\ <-C3
将分支A(C2)合并到分支B(C3)中时,第一个父提交将是C3。
当您将分支B(C3)合并到分支A(C2)中时,第一个父提交将是C2。
您可以使用我的demo project进行检查。您可以使用TortoiseGit检查日志图。
Walk Behaviour → First Parent只需跟进第一次父提交即可。这将有助于了解整个历史。