基本

git commit

ステージングエリアの内容をリポジトリに記録します。変更履歴の1つのスナップショットを作成します。

構文 git commit [-m <message>] [options]

オプション

フラグ 説明
-m <message> コミットメッセージをコマンドラインで指定します。
-a, --all 追跡済みファイルの変更をすべて自動でステージングしてコミットします(新規ファイルは含まない)。
--amend 直前のコミットを修正します。メッセージの訂正やファイルの追加に使います(未プッシュのコミットのみ推奨)。
--no-edit --amend と組み合わせて、メッセージを変更せずにコミットを修正します。
-v, --verbose コミット前にステージングされた差分を表示します。

git commit は、ステージングエリア(git add で追加した内容)をリポジトリの履歴として保存します。コミットは Git の最小単位であり、変更の「保存ポイント」になります。

基本的な使い方

# ファイルをステージングしてからコミット
git add README.md
git commit -m "README を追加"

# ステージングとコミットを一度に(追跡済みファイルのみ)
git commit -am "バグを修正"

良いコミットメッセージの書き方

# 悪い例
git commit -m "修正"
git commit -m "update"

# 良い例
git commit -m "ログイン画面のバリデーションエラーを修正"
git commit -m "feat: ユーザー認証機能を追加"

コミットメッセージは「何を」より「なぜ」を重視して書くと、後から履歴を読む人に役立ちます。

直前のコミットを修正する

# メッセージを修正する
git commit --amend -m "正しいメッセージ"

# ファイルを追加してコミットをやり直す
git add forgotten-file.txt
git commit --amend --no-edit

注意: --amend は Git の履歴を書き換えます。すでに git push したコミットには使わないでください。

コミットの仕組み

各コミットは以下の情報を持ちます。

  • ツリー: そのコミット時点のファイル構造のスナップショット
  • 親コミット: 直前のコミットへの参照(履歴の連鎖)
  • 作者・日時: 変更を行った人と時刻
  • メッセージ: 変更内容の説明
  • ハッシュ: SHA-1 で生成されたコミットの一意な ID(例: a1b2c3d