编辑
2026-01-16
开发工具-Git
00
请注意,本文编写于 82 天前,最后修改于 0 天前,其中某些信息可能已经过时。

目录

实践1:批量修改历史提交信息
实践2:批量修改历史提交信息

在日常开发中,我们难免会遇到需要修改 Git 历史提交记录的场景:提交信息写错了、邮箱配置错误导致提交人信息不准确、或者需要合并多个提交。本文提供两份“比细狗还细”的实践步骤,手把手教你如何通过 git rebase -igit filter-branch 两种方式,分别实现批量修改历史提交信息批量修改历史提交人

参考文章:Git 修改历史提交记录

实践1:批量修改历史提交信息

太细了,比细狗还细。不推荐使用

bash
# 从第一个提交开始 git rebase -i --root # 或者:从最近N次提交开始 git rebase -i HEAD~3 # 把pick改成edit :%s/^pick/edit/g # 保存并退出 :wq! # 输入命令(首次) git commit --amend # 修改提交信息,然后退出编辑器,运行以下命令继续下一个 git rebase --continue && git commit --amend

实践2:批量修改历史提交信息

需要在仓库根目录使用,以命令行的方式使用,而不是脚本文件的方式

bash
# 批量修改提交人(OLD_EMAIL用于定位历史提交记录) git filter-branch --env-filter ' OLD_EMAIL="tianjunold@odboy.cn" CORRECT_NAME="Odboy" CORRECT_EMAIL="tianjun@odboy.cn" if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ] then export GIT_COMMITTER_NAME="$CORRECT_NAME" export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL" fi if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ] then export GIT_AUTHOR_NAME="$CORRECT_NAME" export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL" fi ' --tag-name-filter cat -- --branches --tags # 覆盖远程提交记录 git push --force
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Odboy

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC 4.0 BY-SA 许可协议。转载请注明出处!