在git中更改与过去提交相关联的电子邮件

时间:2017-12-06 01:04:44

标签: git github

因此,我们的团队已经在Github的一个项目上工作了几个月。事实证明,我们的一个团队成员错误配置了他的本地git bash shell,并且正在使用其中包含拼写错误的电子邮件地址。

提交已经被推送到远程,并且完全根植于存储库的历史记录中。

我们尝试了注册拼写错误的电子邮件地址,然后将其与当前的GitHub帐户相关联的选项,但该电子邮件是不再可以注册的域的一部分(旧的Windows @live.com地址),所以这无法完成。

我们可以访问此团队成员的贡献统计数据非常重要,我们还希望将该工作与其帐户公开关联,以便构建投资组合。

有没有选择?

编辑:

我在本文评论中链接的问题中运行了为此目的提到的脚本,但问题提交中的作者已替换为soandsoemailname@10.100.220.47而不是soandsoemailname@live.com。是什么赋予了?我想知道这是正确的,然后我强行推动并弄乱一切。

1 个答案:

答案 0 :(得分:1)

这应该与脚本mentioned in Yu-Lin Chen's comment具有类似的效果,但在命令行上显示它。您可能会发现使用它避免转义/解决问题更容易:

git filter-branch -f --env-filter "if [[ \$GIT_AUTHOR_EMAIL = 'bademail@live.com' ]]; then GIT_AUTHOR_EMAIL=goodemail@live.com; fi" HEAD

您可能还想重写提交者:

git filter-branch -f --env-filter "if [[ \$GIT_COMMITTER_EMAIL = 'bademail@live.com' ]]; then GIT_COMMITTER_EMAIL=goodemail@live.com; fi" HEAD