修改git已提交内容的用户名和邮箱

为改变已经提交的 commit 的用户名和/或邮箱地址,你必须重写你 Git repo 的整个历史。

注意:执行这段脚本会重写 repo 所有协作者的历史。完成以下操作后,任何 fork 或 clone 的人必须获取重写后的历史并把所有本地修改 rebase 入重写后的历史中,请谨慎操作。

使用脚本改变你 repo 的 Git 历史
我们写了一段能把 commit 作者旧的邮箱地址修改为正确用户名和邮箱的脚本。

1.打开终端
2.复制粘贴脚本,并根据你的信息修改以下变量

OLD_EMAIL
CORRECT_NAME
CORRECT_EMAIL

脚本:

#!/bin/sh

git filter-branch -f --env-filter '

OLD_EMAIL="your-old-email@qq.com"
CORRECT_NAME="newName"
CORRECT_EMAIL="new-emil@qq.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.按 Enter 执行脚本。
4.查看新 Git 历史有没有错误。
5.把正确历史 push 到 Github
git push --force --tags origin ‘refs/heads/*’
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。