Git修改历史commit的message

在Git中,如果需要修改已经提交的老旧commit的message,可以使用git rebase -i命令和git commit –amend命令来完成。具体的操作步骤如下:

使用git log命令查看需要修改message的commit的哈希值。例如:

$ git log
commit f3f6d3f4519f9d09691d2edff23f35c02988f293 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Wed Feb 23 10:00:00 2022 -0500

    Add new feature

commit 22e34d16199ee4a4a4a4a4a4a4a4a4a4a4a4a4a4
Author: John Doe <johndoe@example.com>
Date:   Tue Feb 22 10:00:00 2022 -0500

    Update README

commit 5cde1dbb3cfcba0673fc76d123c9269e721ee1a2
Author: John Doe <johndoe@example.com>
Date:   Mon Feb 21 10:00:00 2022 -0500

    Initial commit

上面的命令输出了当前分支的提交历史,其中最新的commit是f3f6d3f4519f9d09691d2edff23f35c02988f293。

2、使用git rebase -i 命令进入交互式rebase模式,其中是需要修改message的commit的哈希值。例如:

$ git rebase -i 5cde1dbb3cfcba0673fc76d123c9269e721ee1a2

运行上面的命令后,会进入交互式rebase模式,此时可以看到一个包含了当前分支所有提交的编辑器。

3、找到需要修改message的commit所在的行,并将行首的pick改为edit。例如,将需要修改message的commit的行改为:

edit 22e34d1 Update README

4、保存并关闭编辑器后,使用git commit –amend -m “new message”命令修改message。例如:

$ git commit --amend -m "Updated README"

运行上面的命令后,会打开默认的文本编辑器,让你修改最新一次提交的message。你也可以使用-m选项来直接指定新的message。

5、使用git rebase –continue命令继续rebase操作,直到所有修改都完成为止。例如:

$ git rebase --continue

6、最后,使用git log命令验证修改是否成功。例如:

$ git log
commit f3f6d3f4519f9d09691d2edff23f35c02988f293 (HEAD -> master)
Author: John Doe <johndoe@example.com>
Date:   Wed Feb