Git

如何編輯 git 的歷史記錄以更正不正確的電子郵件地址/名稱

  • June 13, 2016

當我開始使用 git 時,我只是做了 agit init並開始呼叫addand commit。現在我開始注意了,我可以看到我的送出顯示為cowens@localmachine,而不是我想要的地址。看起來好像在設置GIT_AUTHOR_EMAIL並且GIT_COMMITTER_EMAIL會做我想做的事,但我仍然有那些舊的送出帶有錯誤的電子郵件地址/名稱。如何更正舊的送出?

您可以通過一次呼叫 git filter-branch 返回並修復所有送出。這與 rebase 具有相同的效果,但您只需執行一個命令即可修復所有歷史記錄,而不是單獨修復每個送出。

您可以使用以下命令修復所有錯誤的電子郵件:

git filter-branch --env-filter '
   oldname="(old name)"
   oldemail="(old email)"
   newname="(new name)"
   newemail="(new email)"
   [ "$GIT_AUTHOR_EMAIL"="$oldemail" ] && GIT_AUTHOR_EMAIL="$newemail"
   [ "$GIT_COMMITTER_EMAIL"="$oldemail" ] && GIT_COMMITTER_EMAIL="$newemail"
   [ "$GIT_AUTHOR_NAME"="$oldname" ] && GIT_AUTHOR_NAME="$newname"
   [ "$GIT_COMMITTER_NAME"="$oldname" ] && GIT_COMMITTER_NAME="$newname"
   ' HEAD

更多資訊可從git 文件獲得

引用自:https://serverfault.com/questions/12373