35
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

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

Last updated at Posted at 2015-08-31

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

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

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

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

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

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

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

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

チャットメンバー募集

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

Twitter

35
25
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
35
25

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?