合并git提交记录

使用git协同开发时,或更准确地说,当对commit message的书写有要求(如需要抓取changelog)且开发规模大(意味着不能完全完成某个feature后再统一提交)时,往往在将本地提交推送到远程分支之前需要精简提交记录。

本文介绍通过git rebase合并(本地)提交记录的方法。

通过git rebase合并提交记录

主要包括以下步骤:

  • 检查版本库状态和提交记录
  • 开启rebase交互模式
  • 选择要合并的记录
  • 修改提交信息
  • 检查版本库状态和提交记录

开始和结束时的检查步骤是为了避免冲突。

举个🌰

在rebse前请务必检查版本状态和已有提交记录:

1
2
git status
git log

check_log

开启交互模式,其中commit_sha是待合并的一系列记录的前一条记录(直观地,“rebase”的“base”):

1
git rebase -i <commit_sha> # 在这个例子里是0be9852

选择要合并的记录,如图是执行以上命令后在终端中打开的文本编辑器,根据提示(注释)修改目标提交记录前的command tag即可。

修改前:

commit_selection

修改后:

commit_selection_2

修改提交信息,即将多条提交信息合并为一条。如图是执行以上命令后在终端中打开的文本编辑器,根据提示(注释)修改提交记录即可:

commit_message

最后检查提交记录,确认无误后推送到远程分支:

1
2
git log
git push

合并前的提交记录:

before_rebase

合并后的提交记录:

after_rebase