23
Help us understand the problem. What are the problem?

posted at

updated at

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

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

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

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

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

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

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

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

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

チャットメンバー募集

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

メンター受付

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Sign upLogin
23
Help us understand the problem. What are the problem?