git add 使い方

インデックスにファイルを追加する

file.txt を追加するには

git add file.txt

とする。また、「*.txt」 とすると拡張子 .txt のファイルをすべて追加できる。

git add *.txt

ディレクトリの中のファイルを再帰的にインデックスに追加する

単にディレクトリ名を指定する。「dir」というディレクトリの中にあるファイルをインデックスに追加するには

git add dir

とする。

実際には実行せずにインデックスに追加されるファイルを調べる

オプション「-n」を使う。たとえば、次のようにすると

git add -n *.txt

「git add *.txt」 で追加されるファイルが表示される。

無視されるファイルを強制的にインデックスに追加する

オプション「-f」を使う。file.txt が .gitignore で無視されるファイルに 設定されていても

git add -f file.txt

とすればインデックスに追加できる。

対話的にパッチの一部をインデックスに追加する

file.txt への変更の一部をインデックスに追加するには「-p」オプションを使う。

git add -p file.txt

こうするとパッチのひとかたまり毎にインデックスに加えるうかどうかを尋ねてくる。 加えるなら「y」、加えないなら「n」を押す。 その他の操作は「?」でヘルプを見て調べることができる。

リポジトリに登録されていて変更されたファイルをインデックスに追加する

「-u」オプションを使う。削除されたファイルの情報は追加されるが、 新しく作成されたファイルは追加されない。

git add -u

ファイルパターンを使う場合は

git add -u *.txt

のようにする。

ワークツリーの変更と新しく作成されたファイルをリポジトリに登録する

新しく作成されたファイル、削除されたファイルの情報、ファイルの変更を インデックスに追加するには「-A」オプションを使う。

git add -A

ファイルパターンを使う場合は

git add -A *.txt

のようにする。

変更部分を表すパッチを直接編集してインデックスに追加する

「-e」オプションを使う。

git add file.txt -e
git add -A -e
git add . -e

などのようにして使う。

対話的にファイルをインデックスに追加する

「-i」オプションを使う。

git add -i

空のディレクトリを git で扱う

git では空のディレクトリをリポジトリに含めることはできない。 そのため、どうしても空のディレクトリをリポジトリに加えたい場合、 適当なファイルを作ってそのディレクトリに入れる必要がある。

以前は .gitignore ファイルを使うことが多かったが .gitkeep や .keep といった名前のファイルも見かける。具体的には

mkdir empty_directory
touch empty_directory/.gitignore
git add empty_directory/.gitignore

のようにすれば良い。

参考

Tags of current page