有些时候,可能你在 Git 提交的时候不经意间提交了错误的 Commit 作者信息,那么如何修改成正确的呢?
如果尝试修改 Git 的提交邮箱
1 | git config --global user.name "Your Name" |
这样可以修改作者的名字和邮箱
但是
这种方法只对之后的 commit 有效,之前提交过的就改不了了…
还好,Google 到了一种解决办法,这里分享下,也算是做个记录
打开终端(Linux 的终端或 Windows 下 Git 客户端的 git-bash.exe 均可)
同步下来你的项目并进入目录(以 repo.git 为例)
1
2git clone --bare https://github.com/user/repo.git
cd repo.git将下面的脚本,直接复制到终端命令行里
并修改 oldEmail, newName, newEmail 三个变量为你自己的1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17git filter-branch --env-filter '
oldEmail="Your Old Email"
newName="Your New Name"
newEmail="Your New Email"
if [ "$GIT_COMMITTER_EMAIL" = "$oldEmail" ]; then
export GIT_COMMITTER_NAME="$newName"
export GIT_COMMITTER_EMAIL="$newEmail"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$oldEmail" ]; then
export GIT_AUTHOR_NAME="$newName"
export GIT_AUTHOR_EMAIL="$newEmail"
fi
' --tag-name-filter cat -- --branches --tags执行脚本,看到一堆 rewritten 的时候就说明写入完成了
git log 查看新的 Commit 信息是否正确
提交
1
git push --force --tags origin 'refs/heads/*'
删除临时文件
1
2cd ..
rm -rf repo.git
需要注意的是,上面的执行后,新 clone 出来的项目 Log 中 Name 和 Email 已经为最新的信息。在执行上面的几步之前已经 clone 出来的项目中,如果执行 git pull 的话,Log 中的 Name 和 Email 信息还是原来的信息
这样就算是完成了