Skip to content

Git合并提交

使用git rebase命令

请注意,合并所有提交可能会改写提交历史,因此请在执行此操作之前确保您了解其潜在影响。

以下是将所有提交合并为一个的一般步骤:

首先,确保您当前位于要合并提交的分支上。使用git branch命令检查当前分支,并使用git checkout命令切换到需要合并提交的分支。

git branch  # 查看当前分支
git checkout <branch-name>  # 切换到需要合并提交的分支

运行以下命令以将所有提交合并为一个提交:

git rebase -i HEAD~<n>

其中<n>是您想要合并的提交数量。例如,如果要合并最近的5个提交,则<n>将为5。

Git会打开一个交互式的编辑器,列出要合并的提交。 在编辑器中,将除最早的提交外的所有提交行的pick关键字替换为squashs。将这些提交合并到最早的提交中。

pick abcd123 Commit message 1
s efgh456 Commit message 2
s ijkl789 Commit message 3

保存并关闭编辑器。

Git会打开另一个编辑器,允许您编辑合并后的提交消息。 在编辑器中,保留您想要的合并后提交的消息,然后保存并关闭编辑器。

Git将应用您的更改,并将所有提交合并为一个提交。如果有冲突发生,Git会提示您解决冲突。

最后,使用git push --force命令将更改推送到远程仓库。

git push --force

请注意,--force选项用于覆盖远程分支的历史记录。在执行此命令之前,请确保您已充分了解其潜在风险,并与团队成员协商。

合并所有提交可能会改变提交历史,因此请在执行此操作之前进行备份,并确保您对Git的工作原理有基本的了解。

附:

  • vim 撤销
    • 按下Esc键,确保您处于正常模式(Normal Mode)
    • 小写字母u将撤销最近的一次编辑操作。每按一次u,将逐步撤销之前的编辑操作
    • Ctrl+r会恢复之前撤销的操作。每按一次Ctrl+r,将逐步恢复之前的撤销操作

文章来源于自己总结和网络转载,内容如有任何问题,请大佬斧正!联系我