我已经向 Github 上的一个项目提交了一堆提交,但是我意识到我没有在我当前用于提交的计算机上设置正确的电子邮件和提交者全名,因此没有设置用户头像和电子邮件地址不存在。
如何重写所有过去的提交电子邮件和用户名?
最佳答案
您可以添加这个别名:
git config --global alias.change-commits '!'"f() { VAR=\$1; OLD=\$2; NEW=\$3; shift 3; git filter-branch --env-filter \"if [[ \\\"\$\`echo \$VAR\`\\\" = '\$OLD' ]]; then export \$VAR='\$NEW'; fi\" \$@; }; f"
更改作者姓名:
git change-commits GIT_AUTHOR_NAME "old name" "new name"
或仅包含最后 10 次提交的电子邮件:
git change-commits GIT_AUTHOR_EMAIL "old@email.com" "new@email.com" HEAD~10..HEAD
别名:
change-commits="!f() { VAR=$1; OLD=$2; NEW=$3; shift 3; git filter-branch --env-filter \"if [[ \\\"$`echo $VAR`\\\" = '$OLD' ]]; then export $VAR='$NEW'; fi\" \$@; }; f"
来源:https://github.com/brauliobo/gitconfig/blob/master/configs/.gitconfig
关于Git,重写以前的提交用户名和电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2919878/