【发布时间】:2021-08-05 14:38:47
【问题描述】:
在过去的几个月里,我一直在工作并提交到 GitHub,而没有在 git 配置文件中设置电子邮件地址。现在我开始申请工作,我担心这对雇主来说可能看起来很糟糕,因为我似乎一直在偷懒。有没有办法将提交信用同步到当前电子邮件,以便它们显示在我的个人资料中?
【问题讨论】:
在过去的几个月里,我一直在工作并提交到 GitHub,而没有在 git 配置文件中设置电子邮件地址。现在我开始申请工作,我担心这对雇主来说可能看起来很糟糕,因为我似乎一直在偷懒。有没有办法将提交信用同步到当前电子邮件,以便它们显示在我的个人资料中?
【问题讨论】:
注意:请不要重写共享项目的历史记录。
但在您是唯一贡献者的个人项目中,这完全没问题。
如果你想更改提交作者,你可以使用这个聪明的工具:https://github.com/jayphelps/git-blame-someone-else 并使用你的新电子邮件作为<author>。
第二步是将其应用于多个提交。这个答案派上用场了:Git run shell command for each commit
所以总的来说,你最终会得到:
git rebase -i --exec "git blame-someone-else <author> <commit>" <first commit in your branch>~
要在变基期间获取当前提交 SHA,您可以插入 $(git rev-parse HEAD) 而不是 <commit>。
你可以使用$(git rev-list --max-parents=0 HEAD)代替<first commit in your branch>
【讨论】:
git rebase -i --exec "git blame-someone-else 'Max B <maxb@gmail.com>'" $(git rev-list --max-parents=0 HEAD)。知道问题可能是什么吗?我觉得我可能对引号做错了。
git rebase -i --exec "git blame-someone-else 'Max B <maxb@gmail.com>' $(git rev-parse HEAD)" $(git rev-list --max-parents=0 HEAD)
git blame-someone-else 'Max B <maxb@gmail.com>' $(git rev-parse HEAD) - 如果它适合您,请尝试更多提交。git log 时,它现在会显示正确的电子邮件!手指越过它最终会同步。