一、使用rebase
如圖,紅圈中提交的用戶名及郵箱是需要改的,則需要複製需要改的提交記錄的上一個記錄hashcode
,在本例中就是a0a891a48f92b51201042fccbe61ed12646eda5e
git rebase -i a0a891a48f92b51201042fccbe61ed12646eda5e
- 也可以用
HEAD~步長
的方式,但如果提交記錄很久遠的話,算步長就不太現實,所以更推薦hashcode
寫法
git rebase -i HEAD~1
- 如果整個倉庫只有1次提交,即root提交,則需要用如下命令
git rebase -i --root
二、此時進入編輯界面,記錄着commit的信息
三、修改需要修改的commit
需要修改哪個commit就在行首將pick
改爲edit
,在本例中則需要改第一行
四、保存退出
wq
保存退出之後會返回如下內容
五、修改用戶名及郵箱
git commit --amend --reset-author
命令執行後會進入提交日誌的編輯界面,我們僅需要修改用戶名及郵箱,不需要修改提交日誌信息,wq
保存退出即可
接下來此次提交的作者及郵箱會被修改爲--local
級別的用戶名及郵箱,若該級別沒有設置,則會使用--global
級別的用戶名及郵箱
- 如果不想改全局用戶名及郵箱的話,也可以手動指定用戶名及郵箱:
git commit --amend --author="otheruser <[email protected]>"
六、結束rebase
git rebase --continue
再查看提交記錄,可以看到提交的作者及郵箱已經改正了
七、同步到遠程倉庫上
git push -f origin master