相关教程
Git – Squash|极客教程 Git 中的 Squash 合并 | 现代前端开发指南
步骤
步骤 1: 启动交互式 rebase
git rebase -i HEAD~4这将会打开一个编辑器,列出最近的4个提交(假设使用的是默认编辑器,通常是vim或nano):
pick e4f5g6h 第一次提交
pick i7j8k9l 第二次提交
pick m1n2o3p 第三次提交
pick a1b2c3d 最新的提交
步骤 2: 调整提交
你将看到一个列表,每一行代表一个提交,最早的提交在顶部。为了压缩最后三个提交,你需要将它们前面的 pick 改为 squash 或 s(对于你想合并入的提交)。但请保留列表中的第一个提交(即最早的提交)为 pick。
你的编辑器中应该看起来像这样:
pick e4f5g6h 第一次提交
squash i7j8k9l 第二次提交
squash m1n2o3p 第三次提交
squash a1b2c3d 最新的提交
这个配置会将最后三个提交合并到第一个提交(e4f5g6h 第一次提交)中。
步骤 3: 完成重写
保存并关闭编辑器。Git 现在将开始合并提交。如果你选择了 squash,Git 将会打开一个新的编辑器窗口,让你编辑新的提交消息。这个提交消息将包含所有被合并提交的提交消息,以便你可以编辑。
编辑提交消息后,保存并关闭编辑器。现在,你已经成功地将多个提交合并为一个提交。
步骤 4: 查看结果
你可以通过以下命令查看新的提交历史:
git log你应该能看到之前的三个提交现在已经被合并到一个新的提交中。
步骤 5: 更新远程仓库
如果你之前已经将这些提交推送到了远程仓库,由于你改变了提交历史,你需要用强制推送来更新远程仓库:
git push --force注意:强制推送会重写远程仓库中的历史。在执行此操作前,请确保这是你想要的,并且不会干扰其他合作者的工作。
完成这些步骤后,你就成功地将多个提交压缩成了一个提交。