修改git历史提交中的名字、邮箱的脚本

本脚本主要复制粘贴自:https://www.jianshu.com/p/1a5c0228efb0

git代码,如果在提交后,还希望将当时的名字、邮箱全部修改掉,则需要对其进行rebase调整

具体步骤1,git 的bash窗口,创建bare仓库中,

git clone --bare https://github.com/用户名/库名.git

步骤2,将下面的名字、邮箱修改正确,脚本代码:

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="XXX@gmail.com"
CORRECT_NAME="YYY"
CORRECT_EMAIL="YYY@gmail.com"

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

步骤3,进入目录,并执行此脚本

步骤4,强推入gitee或github

git push --force --tags origin 'refs/heads/*'

后续,推库后,则bare仓库就没用,可以删除了。

原文地址:https://www.cnblogs.com/eaglexmw/p/14251259.html