SourceTree中分支合并后图形未按预期显示问题咨询
嘿,这个问题我太熟了!大概率是Git默认的「快进合并」在搞鬼,咱们一步步拆解清楚:
为什么看不到合并图形?
当你作为独立开发者从master切出新分支后,如果你在开发期间master没有任何新提交,那你的新分支提交其实是完全延续master的线性历史。这时候Git会默认用快进合并(Fast-Forward Merge)——它不会创建专门的合并提交,只是把master分支的指针直接移动到新分支的最新提交位置。
这种情况下,整个提交历史还是一条直线,自然看不到你预期的「分叉开发再合并」的图形啦。
怎么调整出预期的合并图形?
有两种方法可以解决,按需选择:
- 单次合并强制生成合并提交:下次合并分支时,加上
--no-ff参数,命令是:
这个参数会告诉Git:哪怕能快进,也要生成一个专门的合并提交。这样你的提交历史里就会出现分叉合并的节点,图形工具里就能看到你想要的合并形状了。git checkout master git merge --no-ff your-new-branch - 全局/仓库默认使用非快进合并:如果你每次合并都想要保留合并节点,可以修改Git配置:
- 全局生效(所有仓库都用这个规则):
git config --global merge.ff false - 仅当前仓库生效:
git config merge.ff false
- 全局生效(所有仓库都用这个规则):
要是已经做了快进合并,怎么补救?
如果已经完成了快进合并,还想补出合并节点,可以先回退到合并前的master状态(确保当前没有未提交的更改):
git reset --hard HEAD~1
然后再用git merge --no-ff your-new-branch重新合并就行。
内容的提问来源于stack exchange,提问作者NarendraR
相关产品推荐
相关产品推荐

