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

Change email associate with past commits in git

所以,我们的团队已经在Github上的一个项目上工作了几个月。结果我们的一个团队成员错误地配置了他的本地Git-Bash shell,并且提交了一个电子邮件地址,其中有一个拼写错误。

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

我们尝试注册拼写错误的电子邮件地址,然后将其与他当前的Github帐户关联,但该电子邮件是不再可以注册的域的一部分(旧的Windows@live.com地址),因此无法执行此操作。

我们有权访问这个团队成员的贡献统计数据,这一点非常重要,而且为了构建一个投资组合,我们还希望公开将工作与他的帐户关联起来。

有什么选择吗?

编辑:

我在本帖评论中链接的问题中运行了上文提到的脚本,但有问题的提交者已替换为[email protected],而不是[email protected]。什么给予?我想知道这是正确的,在我强迫推和弄乱一切之前。


这应该和余林晨的评论中提到的脚本有类似的效果,但在命令行中却有明确的说明。您可能会发现避免它的转义/解决问题更容易:

1
git filter-branch -f --env-filter"if [[ \$GIT_AUTHOR_EMAIL = '[email protected]' ]]; then [email protected]; fi" HEAD

您可能还需要重写提交人:

1
git filter-branch -f --env-filter"if [[ \$GIT_COMMITTER_EMAIL = '[email protected]' ]]; then [email protected]; fi" HEAD