有时,我们在工作中自己造了点轮子,上传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
在需要修改的代码仓库中,使用上面这段代码,修改三个账户相关的参数,回车运行即可。