コミットしてしまった後に恥ずかしい間違いに気づいて書き換えたい時の対処方法。
まずは基本。直前にコミットしたものを修正するには、
- ファイル(hoge.txt) を修正する
- 修正したファイルをaddする $ git add hoge.txt
- 修正をコミットする $ git commit --amend
これだけです。コミットのコメントのみを書き換えたい時は、3だけを実行すればOK。
次はもっと古い過去を書き換えたい時。ちょっと手順が複雑になります。
- 今のブランチ名をい記録する (ここではmasterとします)
- 書き換えたい歴史を探す (今回はコミットのハッシュ値が abcd1234 とする) $ git log
- コミットを取り出す $ git checkout abcd1234
- 恥ずかしい間違いを修正する
- 修正したファイルをaddする $ git add hoge.txt
- 修正をコミットする $ git commit --amend
- masterの現在と書き換えたい過去までの間にあったまともな歴史を、今書き換えた過去の上に再構築する $ git rebase --onto HEAD abcd1234 master ※過去が古ければ古いほど時間がかかります
結論。遠い過去の記憶を掘り起こすのは人と同じで大変です (^^;