あまブログ

ドキドキ......ドキドキ2択クイ〜〜〜〜〜〜〜ズ!!

【Git】git commit --amendで直前のコミットを修正する

この記事では、git commit --amendの使い方を紹介します。

  • git commit --amend:直前のコミットの修正
    • 現在のステージングエリアの状態を元に、直前のコミットを作り直す
    • 修正されたコミットは実際は新しいコミットのため、リモートにpush済みのコミットへの使用には注意が必要

1. コミットメッセージの修正

ステージングエリアの変更がない状態でgit commit --amendを実行すると、直前のコミットのコミットメッセージだけを修正できます(コミットの内容は変更されない)。

$ git add hello.rb
$ git commit -m "コミットメッセージ"
$ git commit --amend -m "修正後のコミットメッセージ"
  • git commit --amendする前(上記2行目と3行目の間)に作業ディレクトリ(ステージングエリアに追加していない)のファイルの修正があっても問題ない

2. コミットの修正

2-1. git addし忘れた場合

# hello.rbとmain.rbを修正
$ git add hello.rb
$ git commit -m "hello.rbとmain.rbを修正"
# main.rbをaddし忘れたことに気付く
$ git add main.rb
$ git commit --amend --no-edit
  • --no-editでコミットメッセージを変更せずにコミットを修正

2-2. ファイルの修正

# hello.txtを修正
$ echo "hello" > hello.txt
$ git add hello.txt
$ git commit -m "helloに修正"
# hello worldに修正すべきだったことに気付く
$ echo "hello world" > hello.txt
$ git add hello.txt
$ git commit --amend -m "hello worldに修正"
  • 不要なコミットを追加しないで済む

【参考】