git修改已提交的履历的作者信息

git修改已提交的履历的作者信息

场景

有的时候修改了git配置的全局用户名和邮箱,但是已经提交了几次代码,这个时候需要修改已经提交的代码的提交者信息。

操作

为了保证修改之后的提交我们使用正确的提交者信息,我们需要先修改git配置信息。

  1. 如果之前全局配置设定要修改的情况下,需要先修改git全局配置
git config --global user.name "new name"
git config --global user.email "new email"
  1. 全局配置不需要修改,只修改当前项目仓库git配置信息
git config user.name "new name"
git config user.email "new email"
  1. git配置信息修改完成后,命令行执行以下命令并替换其中的OLD_EMAILCORRECT_NAMECORRECT_EMAIL为要修改的值。
git filter-branch --env-filter '
OLD_EMAIL="old email"
CORRECT_NAME="new name"
CORRECT_EMAIL="new email"
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
  1. 修改完成后,通过git log命令确认本地修改成功后强制推送到远程仓库
git push -f

::: warning 注意

  1. 强制推送可能会影响使用同一远程仓库的其他人,请确保在进行此操作之前与团队成员进行沟通。
  2. 修改前请先备份好代码,避免修改失败后代码丢失。
    :::
posted @   Mazy_699  阅读(800)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示