小编典典

在推入 Git 之前合并多个提交

all

我的本地存储库中有一堆主题相似的提交。我想在推送到远程之前将它们组合成一个提交。我该怎么做?我认为rebase这样做,但我无法理解文档。


阅读 86

收藏
2022-03-17

共1个答案

小编典典

您想要做的事情在 git 中被称为“挤压”。执行此操作时有很多选项(太多?),但如果您只想将所有未推送的提交合并到一个提交中,请执行以下操作:

git rebase -i origin/master

这将打开您的文本编辑器(-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

将除第一个之外的所有更改picksquash(或):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”将为您提供所有其他可用选项的解释。

2022-03-17