git add -u と git add -A と git add . の違い
Posted: | Tags: Git
git add
git add
は、指定したファイルをインデックスに登録してコミット対象にするコマンド。
$ git add <file>
# 例
$ git add text.txt
<file>
には、*
を使ったワイルドカードによる指定もできる。
$ git add *.py # カレントディレクトリのすべての.pyファイルをadd
git add -u と git add -A と git add .
オプションを付けることで、まとめて登録できる。
git add -u
(git add --update
)
- バージョン管理されていて、変更があったすべてのファイルが
add
される- 変更されたファイル、削除されたファイルが
add
される
- 変更されたファイル、削除されたファイルが
- バージョン管理されていないファイルは
add
されない- 新しく作られたファイルは
add
されない
- 新しく作られたファイルは
git add -A
(git add --all
)
- 変更があったすべてのファイルが
add
される- 変更されたファイル、削除されたファイル、新しく作られたファイル、すべてが
add
される
- 変更されたファイル、削除されたファイル、新しく作られたファイル、すべてが
git add .
- カレントディレクトリ以下の、変更があったすべてのファイルが
add
される- カレントディレクトリ以下の、変更されたファイル、削除されたファイル、新しく作られたファイル、すべてが
add
される - git ver.1.xまでは、削除されたファイルは
add
されなかった
- カレントディレクトリ以下の、変更されたファイル、削除されたファイル、新しく作られたファイル、すべてが
以下のリンクの表が分かりやすかった。
New Files | Modified Files | Deleted Files | |
---|---|---|---|
git add -u | × | ○ | ○ |
git add -A | ○ | ○ | ○ |
git add . | ○ | ○ | ○ |
注意点
上の表では表現されていないが、厳密にはgit add -A
とgit add .
は全く同じではない。
git add -u
とgit add -A
はレポジトリ内のどこで実行してもレポジトリ全体を処理するが、git add .
はカレントディレクトリ以下のみを処理する。
例えば、レポジトリ内にdir1
とdir2
のディレクトリがある場合。
repository_dir
├── dir1
└── dir2
dir1
でgit add .
を実行すると、dir2
の変更はadd
されない。