我的本地存储库中有一堆主题相似的提交。我想在推送到远程之前将它们组合成一个提交。我该怎么做?我认为rebase这样做,但我无法理解文档。
rebase
您想要做的事情在 git 中被称为“挤压”。执行此操作时有很多选项(太多?),但如果您只想将所有未推送的提交合并到一个提交中,请执行以下操作:
git rebase -i origin/master
这将打开您的文本编辑器(-i用于“交互式”),文件如下所示:
-i
pick 16b5fcc Code in, tests not passing pick c964dea Getting closer pick 06cf8ee Something changed pick 396b4a3 Tests pass pick 9be7fdb Better comments pick 7dba9cb All done
将除第一个之外的所有更改pick为squash(或):s
pick
squash
s
pick 16b5fcc Code in, tests not passing squash c964dea Getting closer squash 06cf8ee Something changed squash 396b4a3 Tests pass squash 9be7fdb Better comments squash 7dba9cb All done
保存文件并退出编辑器。然后将打开另一个文本编辑器,让您将来自所有提交的提交消息组合成一个大提交消息。
瞧!谷歌搜索“git squashing”将为您提供所有其他可用选项的解释。