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 @ 2024-04-19 10:51  Mazy_699  阅读(944)  评论(0)    收藏  举报