この記事では、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に修正"
- 不要なコミットを追加しないで済む
【参考】