重新设置git存储库以将多个提交合并为一个,但是具有合并提交?

时间:2020-06-18 16:09:37

标签: git

这是我一直遇到的一个问题,可能是由于不良习惯造成的,但是我一直无法找到解决方案。基本上,我说我在功能分支上工作了一段时间,而且我的提交草率,所以我有很多提交,而且我也投入了几次开发来跟上进度。可能看起来像这样:

#jfdaa My commit
#fkljd My Commit
#4kfdf Merge Commit
#43252 My Commit
#25525 My Commit

但是我希望它看起来像这样:

#3953h Merge Commit
#fdsaf My Commit

有什么好方法吗?

1 个答案:

答案 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

相关问题