修改已经提交的Git log 历史提交信息

Git使用过程中,如果我想修改已经提交的Git log 历史提交信息,应该如何操作呢?使用什么命令?

若要修改最近一次提交的 git log,可以用git commit –amend命令(vim编辑的方式);
若要修改之前提交的 git log,就需要按照如下的步骤:
(1)查看前n次的提交历史记录 git log -n;
(2)执行命令git rebase –i HEAD~n,会把前n次的提交记录信息按照倒叙列出来;
(3)要修改哪一次的git log,就把对应那行的 ‘pick’修改为‘edit’,然后esc + :wq退出vim编辑器;
(4)根据提示,执行git commit –amend命令,进入vim编辑器并修改提交信息;
(5)然后执行git rebase –continue命令。

修改上次提交的commit信息

git commit --amend commitid

修改之前某一个特定的commit信息

git rebase commitid --interactive
git commit --amend "commit info"
git rebase --continue

该回答引用chatgpt:
会打开你的提交记录,然后你可以编辑保持 commit-id从git log 中获取

git rebase -i commit-id
不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 你可以参考下这个问题的回答, 看看是否对你有帮助, 链接: https://ask.csdn.net/questions/375491
  • 这篇博客也不错, 你可以看下Git:git-log的用法总结
  • 除此之外, 这篇博客: git如何修改某次历史提交的commit信息和代码中的 git log 查看历史提交 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:
    A---B(有bug)----C----D---E
    

    发现 B 提交有bug,我们想要直接修改B,但是又不想多增加F提交;或者我们想修改B提交的commit信息。

  • 以下回答来自chatgpt:

    要修改已提交的历史提交信息,可以使用以下命令:

    git rebase -i HEAD~n
    

    其中n代表需要修改的提交的数量。执行以上命令后,可以看到如下界面:

    pick abc123 commit message1
    pick def456 commit message2
    pick ghi789 commit message3
    

    将需要修改的提交的行改成edit模式:

    pick abc123 commit message1
    edit def456 commit message2
    pick ghi789 commit message3
    

    保存该文件后,执行以下命令:

    git commit --amend
    

    进入修改提交信息的界面,修改信息后保存并退出。然后执行以下命令继续完成rebase操作:

    git rebase --continue
    

    完成以上步骤后,使用以下命令将修改推送至远程仓库:

    git push --force origin branch_name
    

    其中branch_name代表需要修改的提交的所在分支的名字。注意,使用--force参数将会覆盖远程仓库中的历史提交记录,建议谨慎操作。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^