修改git已提交的commit中提交者的用户名和邮箱

如下图中,将已经提交的commit中,用户名jincheng-demo,jincheng-demo01,以及邮箱[email protected],
修改为正确的用户名:jincheng,正确的邮箱:[email protected]
修改git已提交的commit中提交者的用户名和邮箱_第1张图片

步骤

  1. 打开git bash here 客户端
  2. 复制需要修改的项目的git地址
 git clone --bare https://gitee.com/xxxx/test01.git(这里替换成自己的git地址)
 cd test01.git (clone完成后,进入项目目录)
  1. 建议执行以下命令,查看当前的git提交后的用户名和邮箱
git config user.name
git config user.email
  1. 复制脚本,并修改成自己的信息,粘贴到git bash here客户端中,按enter执行
    OLD_EMAIL:原来的邮箱名称,这里我的是[email protected]
    CORRECT_NAME:新的用户名称,我自己的是jincheng
    CORRECT_EMAIL:新的邮箱,[email protected]
#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="[email protected]"
CORRECT_NAME="jincheng"
CORRECT_EMAIL="[email protected]"

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已提交的commit中提交者的用户名和邮箱_第2张图片
5. 上一条脚本信息执行完成后,执行一下git命令

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

查看提交的日志信息,用户名和邮箱已经修改过来了
修改git已提交的commit中提交者的用户名和邮箱_第3张图片

git服务端也修改成功
修改git已提交的commit中提交者的用户名和邮箱_第4张图片
6. 清理本地信息

cd ..
rm -rf test01.git

备注

  1. git clone --bare 没有clone项目的全部文件,所以修改完用户名和邮箱,可以直接清理掉
  2. 如果本地之前有clone过完整项目,建议直接清理掉,再重新clone.(我一开始直接pull,再push,发现本地历史记录又覆盖了之前修改的用户名和邮箱,清理掉,直接重新clone,就没有问题了)

你可能感兴趣的:(git,git)