git修改历史记录邮箱
- 因为公司统计代码行数,必须是公司邮箱才能统计到名下,而我苦逼的把git邮箱设置错一个字母并且很久后才发现,所以你见到了这篇文章,为了将历史提交中的邮箱全部修改为正确邮箱我走了很多弯路,所以我决定将解决办法记录下来,方便更多和我有同样遭遇的程序猿。
一、在项目根目录新建modify_author.sh
- 替换其中文字“旧的邮箱”、“新的用户名”,“新的邮箱”
- 注意:执行脚本前需要提交所有代码
#!/bin/sh
git filter-branch --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [ "$GIT_COMMITTER_EMAIL" = "旧的邮箱" ]
then
cn="新的用户名"
cm="新的邮箱"
fi
if [ "$GIT_AUTHOR_EMAIL" = "旧的邮箱" ]
then
an="新的用户名"
am="新的邮箱"
fi
export GIT_AUTHOR_NAME="$an"
export GIT_AUTHOR_EMAIL="$am"
export GIT_COMMITTER_NAME="$cn"
export GIT_COMMITTER_EMAIL="$cm"
' HEAD
二、在根目录打开git Bash
sh ./modify_author.sh
- 执行脚本会出现如下警告不用进行操作,稍后将修改成功
WARNING: git-filter-branch has a glut of gotchas generating mangled history
rewrites. Hit Ctrl-C before proceeding to abort, then use an
alternative filtering tool such as 'git filter-repo'
(https://github.com/newren/git-filter-repo/) instead. See the
filter-branch manual page for more details; to squelch this warning,
set FILTER_BRANCH_SQUELCH_WARNING=1.
三、修改完成将本地推送至云端
git push origin --force --all
|