首頁 / 技術雜談

Git 當中 commit 出去後的修改方法

技術雜談 閱讀約 2 分鐘

理論上,在 git 當中的任何紀錄都應該是不能修改的,包括在 commit 時順手寫下的 notes 也是。但如果真的已經 commit 出去後才發現寫錯的話該怎麼辦呢?

使用 --amend 修改最近一次的commit

在 git 的 commit 當中,有個--amend參數,可以讓我們修改最後一次 commit 出去時寫的紀錄。例如:

git commit --amend

執行後,就會跳出讓我們編輯的畫面,這時我們編輯好後再回來看紀錄就會發現修改好了。不過要注意,如果你已經 push 過的話,這個方法就不能用了。

使用 rebase 修改更早之前的紀錄

如果發現要修改的紀錄是更早之前的,那就要使用rebase了。如果有印象它出現在哪個版本之後的話,可以直接指定從某版開始找:

git rebase -i #######

如果想不起來,也能列出最近若干條紀錄 (比如列出最近5條紀錄):

git rebase -i HEAD~5

這時他會列出這些紀錄的版本號以及相對應的 log messages:

pick:####### add apple

pick:####### add bird

pick:####### add cat

pick:####### add dog

pick:####### remove eggs

然後就是看我們要修改哪個,就把那行的 pick 改成 reword。送出之後,畫面會跳出讓我們修改訊息的畫面,這時我們再把內容編輯好後再送出即可。

軟體工具教學Git
這套方法也能帶進你的團隊 企業內訓・顧問諮詢・演講邀約,兩個工作天內回覆。
來信洽談