據(jù)我研究,綠格子沒了是因?yàn)槟阈薷牧擞脩羿]箱,所以github默認(rèn)不是你提交的了。你只要修改一下歷史commit的用戶郵箱即可。(我就是因?yàn)閾Q了郵箱就出問題了)
那如何使用它更改之前已經(jīng)提交過的commit的用戶郵箱呢。
查看當(dāng)前commit信息
git rebase -i HEAD~n
是按照時間順序由近到遠(yuǎn)顯示最近提交的n條commit。
比如git rebase -i HEAD~3
會進(jìn)入vim模式,英文狀態(tài)下輸入:q
即可退出。
因?yàn)槲乙喜⒌男畔⑹亲铋_始的兩條。最近三條信息鐵定是看不到的。git rebase -i --root
這個是從遠(yuǎn)到近列出所有的commit信息。
修改
首先使用
git rebase -i --root --committer-date-is-author-date
后邊這個--committer-date-is-author-date是保留當(dāng)時提交的時間,否則你雖然修改了但是commit時間會變?yōu)槟阈薷牡臅r間。
上圖中可以看到我在最后三條前邊改為e了,也就是edit編輯的意思。
將你想要修改的commit前面把pick改為e,保存退出。
不會修改的可能需要學(xué)一下vim怎么用。
在英文輸入的狀態(tài)下按i進(jìn)入編輯模式,之后用法就和記事本一樣。修改完畢之后Esc退出編輯模式。
再按:,輸入wq保存修改并退出文件。
之后你會收到提示:
你可以使用
git commit --amend --author="用戶名 <用戶郵箱>"
輸入之后你就會進(jìn)入修改頁面,也是vim編輯器。直接保存退出即可。
修改完第一個文件之后git rebase --continue
繼續(xù)修改下一個。
直到提示你所有的已經(jīng)修改完畢。
Successfully rebased and updated refs/heads/master.
最后git push origin master -f
強(qiáng)制推到遠(yuǎn)程倉庫即可。
將用戶郵箱修改以后,就可以看到我的綠格子已經(jīng)恢復(fù)了。
更多用法看官方文檔:
https://git-scm.com/docs/git-rebase#Documentation/git-rebase.txt