如何修改Git提交記錄
因爲錯誤,補充或說明格式等問題,有時需要修改已執行的Git提交記錄。這個操作並不常用,很多人並不清楚如何操作,所以特意寫了本博客進行詳細說明。
開始前先學一個英文單詞:
amend /əˈmend/
vt. 修改;改善,改進;
vi. 改正,改善;改過自新
The seller will request to amend the letter of credit. 賣方要求修改信用證。
修改最後一次Git提交
如果是修改最後一次提交,操作比較簡單,直接使用 git commit --amend
命令即可。
使用TortoiseGit的話,在commit對話框勾選Amend Last Commit
選項即可。
修改任意歷史提交
修改非最後一次提交記錄會稍微麻煩些,需要先進行變基操作。
- 發送命令
git log
查看當前提交記錄。
- 發送命令
git rebase -i HEAD~2
,它會打開一個編輯器,它會把最後2次的提交顯示出來。這裏的提交日誌是和git log倒敘排列的,最後一次提交記錄在最下方。
對於需要修改的提交,將其行首的命令字段"pick"修改爲"edit"或"e",然後保存退出。
此時看到命令行輸出由master
變爲了master|REBASE-i 1/2
,表示當前處於變基狀態,1/2
表示有2條提交可修改,當前是第一條。此時使用git commit --amend
命令可以修改當前提交內容,使用git rebase --continue
命令則是跳過當前記錄。
修改完所有提交後,Git恢復到正常狀態。
再次查看提交記錄,發現以往的提交信息已經被修改了。
更新服務端的提交記錄
如果之前的提交已近同步到服務端,那就先在本地按上面的方法修改歷史提交記錄,然後PUSH到服務端,需要重點提醒一下的就是:這種情況下的推送命令要增加--force
參數。
git push origin master --force