基本

git add

ファイルの変更をステージングエリアに追加します。次のコミットに含める内容を選択する操作です。

構文 git add <pathspec>...

オプション

フラグ 説明
-A, --all 作業ツリー内のすべての変更(追加・変更・削除)をステージングします。
-p, --patch 変更を対話的に部分選択してステージングします。1つのファイルの一部だけをコミットしたい場合に便利です。
-n, --dry-run 実際にステージングせず、どのファイルが追加されるかだけを表示します。
-u, --update すでに追跡中のファイルの変更・削除のみをステージングします(新規ファイルは含まない)。

git add は、ファイルの変更内容をステージングエリア(インデックス)に登録します。Git のコミットは「ステージングされた内容」のみを記録するため、git commit の前に必ず git add が必要です。

基本的な使い方

# 特定のファイルをステージング
git add README.md

# 複数のファイルをステージング
git add src/index.js src/utils.js

# ディレクトリ内のすべての変更をステージング
git add src/

# カレントディレクトリ以下のすべての変更をステージング
git add .

よく使うパターン

# すべての変更(新規・変更・削除)をステージング
git add -A

# 変更内容を確認しながら部分的にステージング
git add -p

git add -p を使うと、変更の塊(ハンク)ごとに y(ステージング)、n(スキップ)などで選択できます。

ステージングの仕組み

作業ツリー  →  git add  →  ステージング  →  git commit  →  リポジトリ
(変更前)                    エリア                          (履歴)

ステージングエリアを使うことで、「1つのコミットに何を含めるか」を細かくコントロールできます。

注意点

  • git add . は現在のディレクトリ以下のファイルが対象です。リポジトリルートから実行しない場合、一部のファイルが漏れる可能性があります。
  • .gitignore に記載されたパターンに一致するファイルは git add で追加できません。
  • ステージングした内容を取り消すには git restore --staged <file> を使います。