文章目录
在Git中,如果你想要合并两个连续的提交,你可以使用交互式变基(interactive rebase)。这个过程允许你重写提交历史,合并提交,修改提交信息等。下面是如何合并两次连续的提交的步骤:
注意在执行下面命令之前先参考下面文章将Git 的默认编辑器从 nano 更改为 vim
 如何将 Git 的默认编辑器从 nano 更改为 vim
-  启动交互式变基: 
 首先,你需要找到你想合并的提交之前的一个提交的哈希。可以使用git log命令来查找。然后,使用git rebase -i启动交互式变基。假设你想合并最近的两次提交,你可以这样做:git rebase -i HEAD~3这个命令会让Git列出最近三个提交(包括你想合并的两个提交和它们之前的一个)。 
-  选择要合并的提交: 
 一个文本编辑器会打开,列出这些提交。它看起来可能像这样:pick a1b2c3d 第一个提交信息 pick e4f5g6h 第二个提交信息 pick h7i8j9k 第三个提交信息要合并这两次提交,你需要将第二个 pick改为squash或者s(它们是同义词)。这会告诉Git将第二个提交合并到第一个提交中。pick a1b2c3d 第一个提交信息 squash e4f5g6h 第二个提交信息 pick h7i8j9k 第三个提交信息
-  交互式变基选项: 
 在交互式变基会话中,您可以选择不同的命令来操作提交:- pick: 保留该提交(不做任何更改)。
- reword: 保留提交的内容,但修改提交信息。
- edit: 保留提交,但暂停,允许您修改该提交(可以添加、删除或修改文件)。
- squash: 将提交与前一个提交合并,并允许您编辑两个提交的消息。
- fixup: 与- squash类似,但会丢弃当前提交的日志信息,只保留前一个提交的信息。
- exec: 在当前提交上运行shell命令。
- drop: 删除提交。
 
-  重新编写提交信息: 
 保存并关闭编辑器后,Git会暂停并要求你为合并后的新提交提供一个新的提交信息。你可以选择保留一个或两个原始提交的信息,或者写一个全新的提交信息。
-  完成变基: 
 完成提交信息编辑后,保存并关闭编辑器。Git将应用这些更改并完成变基过程。
-  推送更改(如果需要): 
 如果你已经将这些提交推送到了远程仓库,你将需要使用强制推送(git push --force)来更新远程仓库。请注意,强制推送会重写远程仓库的历史,这可能会影响其他协作者。因此,在执行强制推送之前,确保这样做是安全的。
这就是合并连续提交的基本过程。这是一个非常有用的技术,可以帮助你保持提交历史的整洁。