描述
有些时候,可能你在 Git 提交的时候不经意间提交了错误的 Commit 作者信息,那么如何修改成正确的呢?
如果尝试修改 Git 的提交邮箱
git config –global user.name “Your Name”
git config –global user.email “Your Email”
这样可以修改作者的名字和邮箱
但是,这种方法只对之后的 Commit 有效,之前提交过的就改不了了…
还好,Google 到了一种解决办法,这里分享下,也算是做个记录
修改
1、打开终端(Linux 的终端或 Windows 下 Git 客户端的 git-bash.exe 均可)
2、同步下来你的项目并进入目录(以 repo.git 为例)
git clone –bare https://github.com/user/repo.git
cd repo.git
3、复制下面的脚本,可以直接复制到终端命令行里或新建 Shell 脚本
并修改
oldEmail、 newName、newEmail
三个变量为你自己的
git filter-branch --env-filter '
oldEmail="你的旧邮箱"
newName="你的新名字"
newEmail="你的新邮箱"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
4、执行脚本,看到一堆 rewritten 的时候就说明写入完成了
5、git log 查看新的 Commit 信息是否正确
提交
git pull
# 也是提交,没试过
git push –force –tags origin ‘refs/heads/*’
删除临时文件
cd ..
rm -rf repo.git
需要注意的是,上面的执行后,新 clone 出来的项目 Log 中 Name 和 Email 已经为最新的信息。
在执行上面的几步之前已经 clone 出来的项目中,如果执行 git pull 的话,Log 中的 Name 和 Email 信息还是原来的信息
这样就算是完成了
我的其他文章
亲身分享 一次 字节跳动 真实面试经历和面试题
其他薅羊毛网站
自己做的小商城,感兴趣可以相互讨论技术呀!
版权归原作者 张童瑶 所有, 如有侵权,请联系我们删除。