🖥

Git ふたつ以上前のコミットには commit --amend できないの?

2023/08/26に公開

ひとつまえのコミットは $ git commit --amend で簡単に書き換えられる。
「だが二つ以上前のコミットを書き換える」という簡単なコマンドはない。(みたいだ)

なぜないんだ。あったら良いのに。と、思っていた。

だがこれはあくまで、 $ git commit --amend が「ひとつ前のコミット」と「そこからの変更状態(HEAD)」を扱うコマンドだからだ、と理解している。

仮に、二つ前のコミットを書き換えるとすると。
「ひとつ前のコミットの状態」と「ふたつ前のコミットの状態」と「変更状態」という。三つの状態を扱わなければいけない。

だから簡単にコミットを書き換えるコマンドが存在しないのだろう。
(まだ厳密にはよく分かっていない)

なので、二つ以上前のコミットを書き換えるには。リベースのインタラクティブモードを使うこと。

$ git rebase -i HEAD~3 みたいなコマンドで。特定のコミットを edit するモードに入る。
そこから $ git commit --amend すると良い。

(その後、$ git rebase --continue でリベースを完了させることを忘れずに)

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2015-08-31

Discussion