Table of Contents

理論上,在 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。送出之後,畫面會跳出讓我們修改訊息的畫面,這時我們再把內容編輯好後再送出即可。