Gitで作業していると、こんな失敗をしたことありませんか?
- コミットメッセージにタイプミスがあった!
- コミットし忘れてたファイルがあった!
- 不要なファイルをコミットしてしまった!
- 間違ったユーザー名でコミットしちゃった!
そんな失敗を一発で救ってくれるのが、今回紹介するgit commit --amend
コマンドです。
この記事ではgit commit --amend
コマンドの使い方をわかりやすく解説しています。ご参考になれば幸いです。
git commit --amend とは?
amend
は英語で「修正する」「改める」という意味の言葉です。
Gitで使う git commit --amend
もその名のとおり、直前のコミットを修正・上書きするためのコマンドです。
たとえば「さっきのコミット、メッセージを間違えちゃった!」とか、「ファイルを1個忘れてた…」という時に、すぐにやり直すことができて、とても便利です。
git commit --amendのユースケースと使い方
git commit --amend
について、以下の使い方を順番に説明します。
- コミットメッセージを修正する
- コミットし忘れてたファイルを追加する
- 不要なファイルをコミットしてしまったのを取り消す
- 著者情報(ユーザー名やメール)を修正する
コミットメッセージを修正する
コミットしたあとに「誤字を見つけた」「もっとわかりやすい表現に変えたい」と思ったことはありませんか?そんなときは、git commit --amend
を使えば、直前のコミットメッセージを簡単に書き換えることができます。
git commit --amend -m "正しいメッセージ"
使い方の一例:
$ git commit -m "誤字を含むコミット"
[main (root-commit) 39b1aef] 誤字を含むコミット
1 file changed, 1 insertion(+)
create mode 100644 test.txt
$ git log --oneline
39b1aef (HEAD -> main) 誤字を含むコミット
$ git commit --amend -m "誤字を修正した正しいコミット"
[main ac6e811] 誤字を修正した正しいコミット
Date: Mon May 19 13:58:54 2025 +0900
1 file changed, 1 insertion(+)
create mode 100644 test.txt
$ git log --oneline
ac6e811 (HEAD -> main) 誤字を修正した正しいコミット
git commit --amend
を実行すると「誤字を含むコミット」がなくなり、「誤字を修正した正しいコミット」に変わっています。
-m
オプションを省略すると、エディタが開いてメッセージを直接編集できます。
使う時の注意点
修正はpush
前のコミットに対して行いましょう。すでにリモート(GitHubなど)にpush
済みのコミットをamend
すると、履歴が書き換わるため、git push -f
(強制プッシュ)が必要になります。これは履歴を書き換える危険な操作なので、チーム開発では使う場面を慎重に見極めましょう。
コミットし忘れてたファイルを追加する
「ファイルA」と「ファイルB」を修正したのに、うっかり「ファイルA」だけをコミットしてしまった。そんな場合でも慌てなくて大丈夫です。git add
し直して、git commit --amend
で前のコミットに含め直すことができます。
git add 忘れたファイル
git commit --amend --no-edit
使い方の一例:
$ git add A.txt
$ git commit -m "ファイルAとファイルBを修正"
[main 940e2a2] ファイルAとファイルBを修正
1 file changed, 1 insertion(+)
$ git status
On branch main
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: B.txt
no changes added to commit (use "git add" and/or "git commit -a")
$ git add B.txt
$ git commit --amend --no-edit
[main 94dda9b] ファイルAとファイルBを修正
Date: Mon May 19 14:04:58 2025 +0900
2 files changed, 2 insertions(+)
--no-edit
オプションを付けることで、コミットメッセージはそのままにで中身だけを更新できます。
不要なファイルをコミットしてしまったのを取り消す
.env
やパスワードが含まれたファイルなど、本当はGitに含めてはいけないファイルをコミットしてしまったときは、一度キャッシュから削除し、--amend
でコミットをやり直せます。
git rm --cached Gitに含めてはいけないファイル
git commit --amend --no-edit
使い方の一例:
$ git rm --cached .env
rm '.env'
$ git commit --amend --no-edit
[main 2a8ec7f] 不要なファイルをコミットしてしまった
Date: Mon May 19 14:09:33 2025 +0900
3 files changed, 2 insertions(+), 2 deletions(-)
delete mode 100644 .env
--cached
オプションを付けることでGitの管理対象からは外すが、ローカルのファイルは削除しないという動きになります。
著者情報(ユーザー名やメール)を修正する
誤って別アカウントでコミットしてしまった場合も、--author
オプションを使えば正しい名前とメールアドレスに修正できます。
git commit --amend --author="名前 <メール>" --no-edit
使い方の一例:
$ git commit --amend --author="山田 太郎 <taro@example.com>" --no-edit
[main d6ac098] 誤って別アカウントでコミットしてしまった
Author: 山田 太郎 <taro@example.com>
Date: Mon May 19 14:09:33 2025 +0900
3 files changed, 2 insertions(+), 2 deletions(-)
delete mode 100644 .env
--no-edit
をつけることで、コミットメッセージは変えずに著者情報だけを変更できます。
git commit --amendでできないこと
git commit --amend
は直前のコミットを修正するコマンドなので、2つ以上前のコミットは修正できません。2つ以上前のコミットを修正したいしたい場合には、git rebase -i
コマンドを用いましょう。
あわせて読みたい
続きを見るgit rebase -i
コマンドについては下記の記事で詳しく説明しています。興味のある方は下記のリンクからぜひチェックをしてみてください。 git rebase -iでnつ前のコミットメッセージを変更する方法を解説!
本記事のまとめ
この記事ではgit commit --amend
コマンドについて、以下の内容を説明しました。
git commit --amend
とは- 直前のコミットを修正・上書きするコマンド
amend
は「修正する」「改める」という意味
- コミットメッセージの修正
- コマンド例:
git commit --amend -m "新しいメッセージ"
-m
を省略するとエディタが開く(部分修正に便利)
- コマンド例:
- コミットし忘れたファイルを追加
git add
で追加後、git commit --amend --no-edit
で修正
- 不要なファイルをコミットから除外
git rm --cached ファイル名
git commit --amend --no-edit
でやり直し
- 著者情報の修正
git commit --amend --author="名前 <メール>" --no-edit
お読み頂きありがとうございました。