兩種情況:
1.已經(jīng)將代碼push到遠(yuǎn)程倉(cāng)庫(kù)
2.還沒(méi)將代碼push到遠(yuǎn)程倉(cāng)庫(kù),還在本地的倉(cāng)庫(kù)中
這兩種情況下的修改大體相同,只是第一種情況最后會(huì)多一步
下面來(lái)說(shuō)怎么修改
先搞清楚你要修改哪次的提交注釋或者哪幾次的提交注釋
修改最后一次注釋
如果你只想修改最后一次注釋(就是最新的一次提交)滞诺,那好辦:
git commit --amend
出現(xiàn)有注釋的界面(你的注釋應(yīng)該顯示在第一行), 輸入i
進(jìn)入修改模式慕嚷,修改好注釋后监嗜,按Esc
鍵 退出編輯模式,輸入:wq
保存并退出惩歉。ok等脂,修改完成。
例如修改時(shí)編輯界面的圖:
修改之前的注釋
修改之前的某次注釋
-
輸入:
git rebase -i HEAD~2
最后的數(shù)字2指的是顯示到倒數(shù)第幾次 比如這個(gè)輸入的2就會(huì)顯示倒數(shù)的兩次注釋(最上面兩行)
你想修改哪條注釋 就把哪條注釋前面的
pick
換成edit
撑蚌。方法就是上面說(shuō)的編輯方式:i
---編輯上遥,把pick
換成edit
---Esc
---:wq
.然后:(接下來(lái)的步驟Terminal會(huì)提示)
git commit --amend
-
修改注釋,保存并退出后争涌,輸入:
git rebase --continue
其實(shí)這個(gè)原理我的理解就是先版本回退到你想修改的某次版本粉楚,然后修改當(dāng)前的commit注釋,然后再回到本地最新的版本
修改之前的某幾次注釋
修改多次的注釋其實(shí)步驟和上面的一樣亮垫,不同點(diǎn)在于:
- 同上
- 你可以將多個(gè)想修改的commit注釋前面的
pick
換成edit
- 依次修改你的注釋(順序是從舊到新)模软,Terminal基本都會(huì)提示你接下來(lái)的操作,每修改一個(gè)注釋都要重復(fù)上面的3和4步饮潦,直到修改完你所選擇的所有注釋
已經(jīng)將代碼push到遠(yuǎn)程倉(cāng)庫(kù)
首先燃异,你把最新的版本從遠(yuǎn)程倉(cāng)庫(kù)先pull下來(lái),修改的方法都如上继蜡,最后修改完成后回俐,強(qiáng)制push到遠(yuǎn)程倉(cāng)庫(kù):
git push --force origin master
注:很重要的一點(diǎn)是,你最好保證在你強(qiáng)制push之前沒(méi)有人提交代碼稀并,如果在你push之前有人提交了新的代碼到遠(yuǎn)程倉(cāng)庫(kù)鲫剿,然后你又強(qiáng)制push,那么會(huì)被你的強(qiáng)制更新覆蓋5竟臁A榱!
最后殴俱,可以檢查一下遠(yuǎn)程的提交記錄~~