git add

変えたファイルを、次のコミットに入れる物として選ぶ。ファイルの中身は変えない。

実行前の状態

README.md を 1 回コミットしたあと、README.md に 1 行足し、新しく app.py を作った場面です。このうち app.py だけを次のコミットに入れたいときに打ちます。

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
echo "print('hi')" > app.py

最小の例と結果

add は成功すると何も出しません。続けて git status を打って結果を見ます。

ターミナル

git add app.py
git status
On branch main
Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
	new file:   app.py

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:   README.md
  • Changes to be committed の下が、次のコミットに入る物です。app.py が移ってきました。
  • README.md は add していないので、Changes not staged for commit に残ったままです。

成功の確認

短い形の status で、左の 1 文字めに A (新しいファイル) や M (変更) が付いていれば載っています。

ターミナル

git status -s
 M README.md
A  app.py

app.py の左の A は、新しいファイルがステージに載ったという印です。README.md は 1 文字めが空白なので、まだ載っていません。?? はまだ記録していないファイル、UU は衝突を直し終えていないファイルで、どちらも載っていません。

構文と主要オプション

書き方すること
git add <ファイル>指定したファイルをステージに載せる
git add .いまのフォルダから下の追加、変更、削除をまとめて載せる
git add -Aリポジトリ全体の追加、変更、削除をまとめて載せる
git add -u記録済みのファイルの変更と削除だけを載せる。新しいファイルは載せない
git add -p変更を塊ごとに見せて、載せるかを 1 つずつ選ぶ

失敗時の戻し方

add しても、ファイルの中身は何も変わりません。載せすぎたときは、ステージから下ろすだけで元に戻ります。下ろしても、ファイルに書いた変更は残ります。

ターミナル

git restore --staged app.py

まだ 1 回もコミットしていないリポジトリでは、restore の代わりに git rm --cached app.py で下ろします。--cached を付けずに git rm を打つと、ファイルそのものが消えるので付け忘れに気を付けます。

git restore app.py のように --staged を付けないと、作業中の変更が消えて元に戻せません。ステージから下ろしたいだけなら、必ず --staged を付けます。

よくある疑問

衝突を直したあと、なぜ add するのですか

merge や pull で衝突したファイルは、git status に both modified と出ます。ファイルを開いて <<<<<<< から >>>>>>> までの印を消し、残したい形に直したら、そのファイルを git add します。add が「このファイルの衝突は直した」という合図になります。

全部のファイルを add したら、merge なら git commit、rebase なら git rebase --continue で続けます。途中でやめたいときは、merge なら git merge --abort、rebase なら git rebase --abort で始める前の状態に戻します。merge を始める前にコミットしていない変更があったときは、元どおりに戻らないことがあります。

add したあとにファイルをまた直したら、どうなりますか

ステージに載るのは、add した瞬間の中身です。そのあと直した分は載っていないので、もう一度 git add します。git status で同じファイルが上下 2 か所に出ていたら、このずれが起きています。

空のフォルダを add しても、何も載りません

Git が記録するのはファイルだけで、フォルダは記録しません。フォルダを残したいときは、中に .gitkeep などの空のファイルを 1 つ置いて、それを add します。

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

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