前一陣子,用公司電腦寫自己的 code,結果…啊啊啊啊,git 的作者資訊顯示的是公司帳號阿 QAQ
原本想說回家後,用 git cherry-pick
一個 commit 一個 commit 搬移後,再重新 commit。結果發現…靠!有將近 20 個 commit ,這樣搬會瘋掉的。
還好找到了這篇 修改 Git commits 的作者資訊 ,雖然情境不太一樣,人家是回家加班寫 code,我是上班時間摸魚進修,不過目的都是一樣的都是修改 Git commits 的作者資訊。
假設目前 git log 存在多筆 commit , A → B → c → d → e, e 是目前最新的 commit ,也就是 HEAD。
其中大小寫字母屬於不同作者提交的 commit。以我的案例來說,大寫是我私人帳號、小寫的則是我公司帳號。
若想修改 c、d、e 三筆 commits 的作者資訊,依序執行下列步驟:
在專案目錄下 rebase 指令
此時,終端器上會出現類似下面的
將要更改的 commit 的 command 由 pick 改成 e 或 edit 後,儲存離開進入 rebase 流程。
此時它會提醒你目前停在 c 的 commit,顯示如下:
接著輸入正確的作者姓名與 E-mail。
修改完成後,就告知 git 並存檔繼續。
接下來會進入下一個被修改 commit ,也就是 d,重覆進行步驟 3、4、5 ,直到所有 commit 被修改完成。
不過每次這樣改有點麻煩,畢竟我剛剛是重覆執行了二十次阿!
與其事後修補,倒不如防範未然。所以我想直接修改專案的作者資訊,由於指令不帶 --global
參數,因此它的作用域只有在這個專案,不會影響整個 git 環境:
本文作者: 辛西亞.Cynthia
本文連結: 辛西亞的技能樹 / hackmd 版本
版權聲明: 部落格中所有文章,均採用 姓名標示-非商業性-相同方式分享 4.0 國際 (CC BY-NC-SA 4.0) 許可協議。轉載請標明作者、連結與出處!