这是我一直遇到的一个问题,可能是由于不良习惯造成的,但是我一直无法找到解决方案。基本上,我说我在功能分支上工作了一段时间,而且我的提交草率,所以我有很多提交,而且我也投入了几次开发来跟上进度。可能看起来像这样:
#jfdaa My commit
#fkljd My Commit
#4kfdf Merge Commit
#43252 My Commit
#25525 My Commit
但是我希望它看起来像这样:
#3953h Merge Commit
#fdsaf My Commit
有什么好方法吗?
答案 0 :(得分:2)
如果所有提交都在合并之后,则无需合并。
与其在developerWorks上进行合并,不如在developerWorks上合并分支。然后根本没有合并提交。历史是很好的,线性的,就像您一直在开发的最前端一样。
C - D - M - G - H [feature]
/ /
A - B - E - F [develop]
git checkout feature
git rebase develop
C1 - D1 - G1 - H1 [feature]
/
A - B - E - F [develop]
这避免了许多不必要的“更新”合并,这些合并没有任何价值,只会使历史记录难以阅读。
您可以进行拉取(这是一次获取和合并),并通过git pull --rebase
和始终将pull.rebase
设置为merges
来进行重新设置。
然后,您可以根据需要使用交互式数据库压缩和修复提交。
git rebase -i develop
按照弹出的编辑器中的说明进行操作。有关更多信息,请参见Rewriting History in Pro Git。