以下是我通常在推送代码之前将多个提交合并成单个提交的方法。
为了实现这一点,我建议您使用GIT提供的'squash'概念。
按照以下步骤进行。
1) git rebase -i master (您也可以使用特定的提交代替master)
打开交互式编辑器,在其中显示所有提交。基本上,您需要识别要合并为单个提交的提交。
假设这些是您的提交,并在编辑器中显示如下。
pick f7f3f6d changed my name a bit
pick 310154e updated README formatting and added blame
pick a5f4a0d added cat-file
需要注意的是,这些提交记录按照与使用log命令通常看到的顺序相反的顺序列出。也就是说,较旧的提交将首先显示。
2)将最后提交的更改中的“pick”更改为“squash”,类似于下面所示。这样做的话,您最近的两个提交记录将合并为第一个提交记录。
pick f7f3f6d changed my name a bit
squash 310154e updated README formatting and added blame
squash a5f4a0d added cat-file
如果您有很多提交需要合并,也可以使用简短的形式:
p f7f3f6d changed my name a bit
s 310154e updated README formatting and added blame
s a5f4a0d added cat-file
为进行编辑,请使用“i”键,它将启用插入编辑器。请记住,最顶部(最旧的)提交无法压缩,因为没有先前的提交可以合并。因此必须选择或使用“p”来挑选。使用“Esc”退出插入模式。
3)现在使用以下命令:wq保存编辑器。
当您保存时,您将获得一个单一提交,该提交引入了所有三个先前提交的更改。
希望这会对您有所帮助。