Git修改提交歷史中的作者及郵箱信息


一、使用rebase

如圖,紅圈中提交的用戶名及郵箱是需要改的,則需要複製需要改的提交記錄的上一個記錄hashcode,在本例中就是a0a891a48f92b51201042fccbe61ed12646eda5e
image

git rebase -i a0a891a48f92b51201042fccbe61ed12646eda5e

  • 也可以用HEAD~步長的方式,但如果提交記錄很久遠的話,算步長就不太現實,所以更推薦hashcode寫法
git rebase -i HEAD~1
  • 如果整個倉庫只有1次提交,即root提交,則需要用如下命令
git rebase -i --root

二、此時進入編輯界面,記錄着commit的信息

image

三、修改需要修改的commit

需要修改哪個commit就在行首將pick改爲edit,在本例中則需要改第一行
image

四、保存退出

wq保存退出之後會返回如下內容
image

五、修改用戶名及郵箱

git commit --amend --reset-author

命令執行後會進入提交日誌的編輯界面,我們僅需要修改用戶名及郵箱,不需要修改提交日誌信息,wq保存退出即可
image

接下來此次提交的作者及郵箱會被修改爲--local級別的用戶名及郵箱,若該級別沒有設置,則會使用--global級別的用戶名及郵箱

  • 如果不想改全局用戶名及郵箱的話,也可以手動指定用戶名及郵箱:
git commit --amend --author="otheruser <[email protected]>"

六、結束rebase

git rebase --continue

再查看提交記錄,可以看到提交的作者及郵箱已經改正了
image

七、同步到遠程倉庫上

git push -f origin master


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章