提到重寫 Git 提交歷史,一般反應都是使用 git-filter-branch
。不過現在有更快、更方便的新工具:git-filter-repo
。
開始前,要注意的是:工具會清除所有的 stash,所以務必先做好備份。
使用 git-filter-repo
修改提交的用戶名和電郵地址需要先準備一個 mailmap
檔案:
New Name <[email protected]> <[email protected]>
....
然後在儲存庫內執行:
git filter-repo --mailmap /path/to/mailmap
工具可能會抱怨儲存庫不是全新的。沒關係,加上 --force
就可以了。
等待工具提示完成,作者用戶名和電郵地址就全部被替換了。
實際使用中,即使是較小規模的儲存庫,git-filter-repo
也比 git-filter-branch
快了不止一點。