批量修改git历史提交的作者和邮箱

有时,我们在工作中自己造了点轮子,上传github时,发现仓库的历史提交全变成了工作的git账户,为了不留下痕迹,就需要批量将所有历史提交修改为自己的github账户。于是可以用下面的这段代码:

git filter-branch --env-filter '
OLD_EMAIL="旧邮箱(工作账号邮箱)"
CORRECT_NAME="新账户名(github名)"
CORRECT_EMAIL="新账户邮箱(github邮箱)"
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中更改多个提交的作者和提交者名称以及电子邮件?

猜你喜欢

转载自blog.csdn.net/qq_33866817/article/details/127050676