git commit

ステージに載せた変更を、1 つの記録として履歴に残す。

実行前の状態

README.md を 1 回コミットしたあと、README.md に 1 行足し、それを git add でステージに載せた場面です。この変更を、説明を付けて履歴に残したいときに打ちます。

この状態を手元で作るなら、次の順に打ちます。

ターミナル

git init -q -b main hello
cd hello
echo "# hello" > README.md
git add README.md
git commit -q -m "README を作る"
echo "start" >> README.md
git add README.md

最小の例と結果

-m の後ろに、何をしたかを短く書きます。

ターミナル

git commit -m "README に説明を足す"
[main a1b2c3d] README に説明を足す
 1 file changed, 1 insertion(+)
  • main はコミットしたブランチ、a1b2c3d はこのコミットの番号 (ハッシュ) です。番号はコミットごとに違うので、手元では別の英数字が出ます。
  • 1 file changed, 1 insertion(+) は、1 つのファイルで 1 行増えたという意味です。

成功の確認

履歴の一番上に、いま書いたメッセージがあれば記録されています。

ターミナル

git log --oneline
a1b2c3d README に説明を足す
9f8e7d6 README を作る

ターミナル

git status
On branch main
nothing to commit, working tree clean

nothing to commit, working tree clean は、記録していない変更が 1 つも残っていないという意味です。

構文と主要オプション

書き方すること
git commit -m "メッセージ"ステージの中身を、メッセージ付きで記録する
git commitエディタを開き、そこでメッセージを書く
git commit -a -m "メッセージ"記録済みのファイルの変更を載せてから記録する。新しいファイルは入らない
git commit -vエディタに差分を並べて、見ながらメッセージを書く
git commit --amend直前のコミットを作り直す。まだ push していないときだけ使う

失敗時の戻し方

戻し方は、そのコミットをもう push したかどうかで変わります。GitHub などとつないであれば、git fetch のあとに git status を打ちます。Your branch is ahead と出たら、まだ push していないコミットがあります。

まだ push していないとき

メッセージを直したいなら、直前のコミットを作り直します。元のコミットは置き換わり、番号も変わります。そのときステージに載っている変更も一緒に入るので、git status でステージが空なのを確かめてから打ちます。

ターミナル

git commit --amend -m "README に使い方を足す"

入れ忘れたファイルがあるなら、add してから作り直します。--no-edit はメッセージをそのまま使う指定です。

ターミナル

git add 忘れたファイル
git commit --amend --no-edit

コミットそのものを取り消したいなら、次のように打ちます。消えるのはコミットの記録だけで、変更はステージに載ったまま残ります。HEAD~1 は 1 つ前のコミットを指すので、リポジトリの最初のコミットには使えません。

ターミナル

git reset --soft HEAD~1

もう push したとき

push したコミットを作り直したり消したりすると、ほかの人の手元の履歴と食い違います。代わりに、打ち消すコミットを新しく足します。元のコミットも履歴に残ります。

ターミナル

git revert a1b2c3d

git reset --hard は、作業中のファイルの変更まで消します。消した変更は戻せないことが多いので、ここでは使いません。

よくある疑問

no changes added to commit と出て、記録されません

変えたファイルをまだ add していません。コミットに入るのはステージに載せた物だけです。git add <ファイル> で載せてから、もう一度 commit します。

-m を付け忘れたら、見慣れない画面が開きました

メッセージを書くエディタが開いています。多くの環境では Vim が開きます。i を押すと書けるようになり、書き終えたら Esc を押してから :wq と打って Enter で閉じます。何も書かずに閉じると、コミットは中止されます。

メッセージは何を書けばいいですか

何のために変えたかを、1 行で書きます。「修正」だけだと、後で履歴を見たときに中身が分かりません。「ログイン画面のボタンの文言を直す」のように、どこの何を変えたかまで書きます。

確かめた Git の版 2.50.1 (Apple Git-155)確認日 2026年10月17日正本は Git 公式マニュアル (英語)

Git コマンド辞典の索引へ戻る