前幾日,在Github上新做存儲庫時、一時失察、居然使用了工作專用的作者資訊。發現時、已經推送了多個提交……怎麼辦?難道要砍掉重做麼?
緊急Google了一番、發現完全不用!解決方法也可以有兩種:
由於是新做的存儲庫、所慮極少,故選用了第一種方法。步驟如下:
1) 從存儲庫複製一份裸倉庫(bare repository):
2) 創建名為git-author-rewrite.sh
的程式腳本:
並加入如下內容:
注:
- 腳本來源:git-author-rewrite.sh。
- 替換變數:OLD_EMAIL、CORRECT_NAME、CORRECT_EMAIL。
- 這裡依據:郵箱查找替換,亦可改為依據名字、不再贅述。
- 這裡假定:作者(author)=提交者(committer),注意甄別;如有必要,可只改其一。
3) 執行腳本,以修改作者資訊:
4) 將改動強行推送(force push)到存儲庫,以及善後、清理:
5) 為了不再重蹈覆轍,複製存儲庫後第一件事便是設置作者:
當然、如果不嫌煩絮的話、也可以在每次創建提交時指定作者(在以下示例中,名字為kenmux,郵箱為[email protected],請酌情修改):