本地有多個git帳號時,容易發生忘記設置項目默認帳號,最後以全局帳號提交的狀況,其實對代碼自己並沒有影響,只是提交記錄裏顯示的是別的名字稍顯彆扭。git
舉個例子: 查看提交日誌,假設以a(a@email.com)提交了三次,發現提交用戶錯了,應該用b用戶提交:spa
$ git log
# 輸出以下
commit 3 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
commit 3
commit 2 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
commit 2
commit 1 (HEAD -> branch1)
Author: a <a@email.com>
Date: Thu Nov 22 16:22:59 2018 +0800
commit 1日誌
1、如何重置本項目用戶信息:blog
$ git config user.name 'b'
$ git config user.email b@email.com博客
2、使用amend命令修改commit信息(注: amend命令只會修改最後一次commit的信息,以前的commit須要使用rebase)it
$ git commit --amend --reset-authoremail
3、若是須要修改歷史提交消息,經過rebase操做方法
$ git rebase -i HEAD~3 // 這個命令若是報錯,請翻我博客,有解決方法
# 輸出以下
pick 1 commit 1
pick 2 commit 2
pick 3 commit 3
要修改哪一個,就把那行的pick改成edit,而後退出。例如想修改commit 1的author,光標移到第一個pick,按i鍵進入INSERT模式,把pick改成edit:im
edit 1 commit 1
pick 2 commit 2
pick 3 commit 3
...
-- INSERT --
而後按esc鍵,退出INSERT模式,輸入:wq退出,這時能夠看到提示,能夠修改commit 1的信息了:項目
輸入amend命令重置用戶信息: $ git commit --amend --reset-author
會出現commit 1的提交記錄及註釋內容,可進入INSERT模式修改註釋,:wq退出。
這時再查看提交歷史,發現commit 1的author已經變成b(b@email.com)了,且是最新一次記錄。
經過continue命令回到正常狀態: $ git rebase --continue