版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Kexiii/article/details/86561273
需求
在不同的机器、电脑上完成开发,提交代码到github上后,发现自己忘记修改git config中的username和email,导致在github历史commit记录中出现了不一致的提交用户id,需要进行订正。
解决方案
- clone代码库
- 进入代码目录,在目录下创建文末的脚本,修改脚本中的OLD_EMAIL、CORRECT_NAME、CORRECT_EMAIL等参数
- 运行脚本
-
git push --force --tags origin 'refs/heads/*'
- 搞定。
#!/bin/sh
git filter-branch --env-filter '
OLD_EMAIL="填入旧的、错误的email"
CORRECT_NAME="填入修改后的username"
CORRECT_EMAIL="填入修改后的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