git commit --amendの使い方!コミットメッセージや内容を修正する方法

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 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

お読み頂きありがとうございました。

スポンサーリンク