批次修改Git Commit 作者名及電郵

由於工作關係,需要用到Git 工具,但筆者自己的工作平台設定了Git 的用戶電郵為自家電郵。一但需要用自己的工作平台處理公事,一個不小心,就會留下了自家電郵。。然後。。。

如果只是修改最新的Commit 還好,只要用

git commit --amend --author="Author Name <email@address.com>"

修改再Push 就好。但如果已經累積了幾次Commit,就相檔令人苦惱。

向Google 大神查詢了一番,找到了修改多個Commit 的方法,是用 rebase -i 來作修改。

假設 Git Log 有 Commits

A->B->C->D->E (HEAD)

,E 是 HEAD 也就是目前最新的。想要更改 CDE 這三個 Commit 的作者,首先rebase 回到Commit B

git rebase -i B

會出現

pick C
pick D
pick E

把 pick 改為 edit,

edit C
edit D
edit E

儲存關閉後就會進入 rebase 流程,會回到Commit C,修改作者名再運行git rebase --continue至Commit D ,重覆流程至所有Commit 都修改好

git commit --amend --author="Author Name <email@address.com>"
git rebase --continue

如果你有哪個Commit 不需要修改,只要不把Pick 改成Edit 就好,Git Rebase 會自動跳過。

Author Details
Sorry! The Author has not filled his profile.

Leave a Reply