如何修改第一个 commit 的提交信息

场景描述

当我们需要修改一个 git commit 的提交信息时,通常会有如下三种场景:

  • 修改当前分支最新 commit 的提交信息
  • 修改当前分支某历史 commit 的提交信息
  • 修改当前分支第一个 commit 的提交信息

解决方式

我们以表格的形式描述如上三种场景下的解决方式:

修改 commit 提交信息场景 操作命令
修改最新 commit 的提交信息 git commit --amend
修改某历史 commit 的提交信息 git rebase -i father_commitId
修改第一个 commit 的提交信息 git rebase -i --root

操作解释

修改最新 commit 的提交信息的操作解释可参考:git-book#Changing the Last Commit

简单说明如下:

  • 如果需要修改提交信息,直接使用 git commit --amend 命令,在弹出的终端中修改提交信息,然后 :wq 保存退出
  • 如果想新添加一些内容或者对最新的 commit 做一些修改和补充,但提交信息觉得合适不想修改,可以在添加完需要修改的内容后(指使用 git add 相关的操作),直接使用 git commit --amend --no-edit 命令,可以避免弹出不必要的终端编辑界面
如何修改第一个 commit 的提交信息_第1张图片

修改某历史 commit 的提交信息的操作解释可参考:git-book#Changing Multiple Commit Messages

简单说明如下:

如果想要修改某个历史 commit,就需要找到这个历史提交的父提交,可以使用 git log 命令找到某个历史 commit 的父提交

如何修改第一个 commit 的提交信息_第2张图片

修改第一个 commit 的提交信息的操作解释可参考 stackoverflow#edit-the-root-commit-in-git

如何修改第一个 commit 的提交信息_第3张图片

也可以参考 git rebase -i --help 的提示信息,笔者操作系统 macOS,git version:2.19.2

如何修改第一个 commit 的提交信息_第4张图片

修改第一个 commit 实操演示

git log 显示提交信息如下:

如何修改第一个 commit 的提交信息_第5张图片

git show 04f437126a6152cd3d5a448a34b303f5e26ef575 显示提交内容如下:

如何修改第一个 commit 的提交信息_第6张图片

git rebase -i --root 操作显示如下:

如何修改第一个 commit 的提交信息_第7张图片

我们将左上角的 pick 改为 r, :wq 保存退出后显示如下:

如何修改第一个 commit 的提交信息_第8张图片

r 参数会直接进入到修改 commit 提交信息的终端交互界面,比如我们将提交信息 a.txt 改为 add a.txt (按 i 进入编辑模式,编辑完毕后按 esc 退出编辑模式,再按 :wq 保存退出),然后使用 git log 命令显示如下:

如何修改第一个 commit 的提交信息_第9张图片

注意事项

如需将修改信息同步到远端仓库,可使用 git push -f 命令进行强制同步,该操作会覆盖远端分支的提交历史,请自行确认操作风险

你可能感兴趣的:(如何修改第一个 commit 的提交信息)