在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