git修改旧提交的提交消息(commit message)

406 阅读1分钟

问题

在准备提交的时候发现上一次的commit message,因为是在之前的基础上改的,没完全改过来就提交并push了。现在需要更改上次的提交消息。

因为我在上一次提交后已经将代码修改过了,所以需要使用交互式变基,然后强制推送以更改提交历史记录。如果是要修改最近推送提交的消息,也可以参考github的官方文档docs.github.com/cn/pull-req…

步骤

  1. 如图是需要修改的提交消息。

    image-20220728204203239

    在修改之前要先把这次的代码提交,否则无法继续。

  1. 在命令行上,导航到包含要修改的提交的仓库。

  2. 使用 git rebase -i HEAD~n 命令在默认文本编辑器中显示最近 n 个提交的列表。

    我用的是

     $ git rebase -i HEAD~3
    

    显示如下信息。我需要修改的是第二条

image-20220728202800848

  1. 在要更改的每个提交消息的前面,用 reword 替换 pick。保存并关闭(:wq)。

image-20220728202841972

  1. 生成的提交文件如下

image-20220728204014220

在每个提交文件中,输入新的提交消息,保存并关闭。

  1. 修改完成后

image-20220728203416540

  1. 使用 push - force 命令强制推送旧提交。

     $ git push --force origin example-branch
    

image-20220728203633322

  1. 修改成功

image-20220728204203239

image-20220728204343676

延伸阅读

git 修改已提交的内容:blog.csdn.net/sodaslay/ar…

Git-重写历史:git-scm.com/book/zh/v2/…