因為在手提電腦上登錄GitHub Desktop時填錯電郵, 導致其後的提交都沒有連結到我的GitHub帳號

本來沒有理會它, 今年去GGJ時, 我和另一位組員在我們的遊戲儲存庫上也出現了同樣問題, 因此便一道解決了

還好GitHub Help上就有解決方法, 說明得非常清楚, 這裡就不重覆說明了: https://help.github.com/articles/changing-author-info/

需要注意的是, 完成更改後, 其他協作者必須重新Clone, 不能直接拉取或推送, 否則所有提交記錄會產生混亂

最好在clone bare後在本地保存一份備份, 萬一操作失敗, 還可以重新更改再push force

如果儲存庫有協作者, 建議備份一段時間, 避免期間有協作者用舊儲存庫提交, 導致記錄混亂無法恢復

恢復腳本:

#!/bin/sh

git filter-branch --env-filter '

OLD_EMAIL="johnsnocodehk@gmail.com"
CORRECT_NAME="johnsoncodehk"
CORRECT_EMAIL="johnsoncodehk@gmail.com"

if [ "$GIT_COMMITTER_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_COMMITTER_NAME="$CORRECT_NAME"
    export GIT_COMMITTER_EMAIL="$CORRECT_EMAIL"
fi
if [ "$GIT_AUTHOR_EMAIL" = "$OLD_EMAIL" ]
then
    export GIT_AUTHOR_NAME="$CORRECT_NAME"
    export GIT_AUTHOR_EMAIL="$CORRECT_EMAIL"
fi
' --tag-name-filter cat -- --branches --tags