将branchA合并到branchB时,branchB会包含branchA之前的提交吗?
合并分支后目标分支是否包含源分支的提交?
结论:是的,branchB会包含branchA中所有未在branchB里的提交,具体表现分两种合并场景:
- 快进合并(Fast-forward):如果branchB的最新提交是branchA的直接祖先,Git会直接把branchB的指针移到branchA的最新提交上,此时branchB的提交历史会完整包含branchA的所有提交记录,视觉上就像这些提交原本就是在branchB上完成的。
- 非快进合并(No-fast-forward):如果两个分支有各自独立的提交记录,Git会生成一个新的合并提交,此时branchB的历史里会完整保留branchA的提交链,你可以通过
git log --oneline --graph命令查看,能清晰看到branchA的提交被整合进branchB的历史中。
验证方式:
- 切换到branchB:
git checkout branchB - 执行合并操作:
git merge branchA - 查看提交历史:
git log,对比合并前后的提交列表,就能确认branchA的提交已出现在branchB的历史里。
- 切换到branchB:
注意:即使合并时出现冲突,解决冲突后提交的是新的合并记录,但branchA的原有提交依然会被包含在branchB的提交历史中。
内容的提问来源于stack exchange,提问作者Emmanuel
相关产品推荐
相关产品推荐

