ステージングエリアにファイルを追加するコマンドの説明
「git add」コマンドは、「ワーキングディレクトリー」にあるファイルを、「ステージングエリア」に追加するコマンドです。コミットを行うと「ステージングエリア」にあるファイルから「スナップショット」が生成されます。
従って、新規に作成したファイルだけでなく、編集した既存のファイルも「ステージングエリア」に追加する必要があります。
編集したファイルを「ステージングエリア」に追加しないと、「スナップショット」に格納されるファイルの中身が変更されません。
何度もステージングエリアにファイルを追加できる
すでに「ステージングエリア」に追加済みのファイルをもう一度「ワーキングディレクトリー」から追加すると、「ワーキングディレクトリー」のファイルで置き換えられます。「ステージングエリア」にあるファイルが「ワーキングディレクトリー」のファイルで更新されます。
ですので、コミット前に同じファイルを何度も「ステージングエリア」に追加することができます。
編集されていないファイルはステージングエリアに追加しなくて良い
編集されていないファイルは「ステージングエリア」に追加する必要はありません。ワイルドカードで「ステージングエリア」に追加するファイルを指定し、編集されていないファイルが追加対象に含まれていても問題ありません。
編集されていないファイルを「ステージングエリア」に追加しても、なにも起きません。
ステージングエリアからファイルを削除することも可能
「ワーキングディレクトリー」からファイルを削除した場合、「ステージングエリア」にあるファイルを削除することもできます。便宜上ここでは「追加」という表現を用いますが、「ワーキングディレクトリー」から削除したファイルを指定して、そのファイルを「ステージングエリア」に追加しようとした場合、「ステージングエリア」からそのファイルが削除されます。
「ワーキングディレクトリー」や「ステージングエリア」からファイルを削除するコマンドである「git rm」コマンドが別途用意されているため、ファイルの削除が目的なら「git rm」コマンドを利用したほうが良いでしょう。
コマンドのフォーマット
コマンドのフォーマットは以下のようになります。
git add <オプション> <ファイル名>
このコマンドの基本的な使い方は、以下を参考にしてください。
実行テストに関するオプション
コマンドの実行テストに関するオプションです。いずれのオプションも省略可能です。
実行テストを行う(-n, --dry-run)
コマンドの実行テストを行います。このオプションを指定すると、どのファイルが「ステージングエリア」に追加されるのか、事前に確認することができます。
このオプションの使用例は、「ステージングエリアに追加されるファイルを確認する」を参考にしてください。
ワーキングディレクトリーに存在しないファイルに対して実行テストを行う(--ignore-missing)
「ワーキングディレクトリー」に存在しないファイルを「ファイル名」に指定して、実行テストを行います。このオプションは、必ず「-n, --dry-run」オプションと併用します。
このオプションの使用例は、「ワーキングディレクトリーに存在しないファイルに対して実行テストを行う」を参考にしてください。
ファイルの追加に関するオプション
ファイルの追加に関するオプションです。いずれのオプションも省略可能です。
トラッキングから除外するファイルを追加対象にする(-f, --force)
「gitignore」によってトラッキングから除外されるファイルも追加対象にします。このオプションの使用例は、「トラッキングから除外されるファイルを追加対象にして、ステージングエリアにファイルを追加する」を参考にしてください。
ファイルの差分をステージングエリアのファイルに適用する(-p, --patch)
「ワーキングディレクトリー」にあるファイルと「ステージングエリア」にあるファイルの差分を作成し、差分を「ステージングエリア」にあるファイルに適用します。このオプションの使用例は、「ワーキングディレクトリーのファイルとステージングエリアのファイルの差分を、ステージングエリアのファイルに適用する」を参考にしてください。
ファイルの差分を作成し、編集した差分をステージングエリアのファイルに適用する(-e, --edit)
「ワーキングディレクトリー」にあるファイルと「ステージングエリア」にあるファイルの差分を作成し、ユーザーが編集した差分を「ステージングエリア」にあるファイルに適用します。上記の「-p, --patch」できることは同じですが、こちらはユーザーが直接差分を編集します。
「-p, --patch」でも、ユーザーは直接差分を編集できますが、「-p, --patch」は「-e, --edit」よりも対話的に差分の適用を実行できます。
このオプションの使用例は、「ワーキングディレクトリーにあるファイルとステージングエリアにあるファイルの差分を作成し、編集した差分をステージングエリアのファイルに適用する」 を参考にしてください。
トラックされていないファイルを、中身が空のファイルとして追加する(-N, --intent-to-add)
トラックされていないファイルを、中身が空のファイルとして追加します。トラックされているファイルを対象にした操作を行いたい時に利用します。
このオプションの使用例は、「トラックされていないファイルを、中身が空のファイルとしてステージングエリアに追加する」を参考にしてください。
対話式でステージングエリアにファイルを追加する(-i, --interactive)
対話式(インタラクティブモード)でステージングエリアにファイルを追加します。このオプションの使用例は、「インタラクティブモードで、ワーキングディレクトリーのファイルをステージングエリアに追加する」を参考にしてください。
追加対象のファイルに関するオプション
追加対象のファイルは、「ファイル名」による指定に加え、以下のオプションによる条件の追加指定も可能です。いずれのオプションも省略可能です。
トラックされているファイルのみステージングエリアに追加する(-u, --update)
トラックされているファイルのみ「ステージングエリア」に追加します。トラックされていないファイルが「ファイル名」に指定、もしくは、含まれていても、それらのファイルは無視されます。
このオプションの使用例は、「トラックされているファイルのみステージングエリアに追加する」 を参考にしてください。
ファイルの状態に関係なくファイルをステージングエリアに追加する(-A, --all, --no-ignore-removal)
ファイルの状態に関係なく、ファイルを「ステージングエリア」に追加します。デフォルトでは、この動作になります。
このオプションの使用例は、「ファイルの状態に関係なくファイルをステージングエリアに追加する」 を参考にしてください。
削除されたファイルを無視して、ファイルをステージングエリアに追加する(--no-all, --ignore-removal)
「ワーキングディレクトリー」から削除されたファイルを無視して、ファイルをステージングエリアに追加します。このオプションの使用例は、「削除されたファイルを無視して、ファイルをステージングエリアに追加する」 を参考にしてください。
その他のオプション
その他のオプションです。いずれのオプションも省略可能です。
詳細情報の出力(-v, --verbose)
コマンド実行時に、詳細情報を出力します。ファイルの情報を更新する(--refresh)
「ステージングエリア」にあるファイルの情報を、「ワーキングディレクトリー」にあるファイルの情報で更新します。このオプションの使用例は、「削除されたファイルを無視して、ファイルをステージングエリアに追加する」 を参考にしてください。
エラーが発生したファイルを除いて、ファイルをステージングエリアに追加する(--ignore-errors)
「ステージングエリア」にファイルを追加する際エラーが発生すると、そこでファイルの追加処理が中断されます。このオプションを利用すると、エラーが発生したファイルを除いて、ファイルを「ステージングエリア」に追加することができます。
このオプションの使用例は、「エラーが発生したファイルを除いて、ファイルをステージングエリアに追加する」 を参考にしてください。
ファイル名
「ステージングエリア」に追加するファイルのファイル名を指定します。「ワーキングディレクトリー」にあるファイルを指定します。
複数のファイルを指定する場合は、スペース区切りでファイル名を指定します。
ファイル名にスペースが含まれる場合など、ファイル名を正しく認識させるには、「'」でファイル名を括ってください。
例:'test.txt'
パスの指定について
サブフォルダー以下のファイルを指定する場合は、パスの記述を行います。例:src/main.c
ファイル名を明示する場合は
コマンドのオプションとファイル名が同じ場合など、ファイル名の指定であることを明示するには、「--」オプションをファイル名の前に記述します。「ファイル名の指定を明示して、ステージングエリアにファイルを追加する」を参考にしてください。
ワイルドカードによる指定
ワイルドカードによる指定も可能です。例えば、「'*.txt'」のように記述することも可能です。
ワイルドカードによるファイル名の指定は、「ワイルドカードを利用して、ステージングエリアにファイルを追加する」を参考にしてください。
フォルダーの指定も可能
「ファイル名」にフォルダーを指定することもできます。フォルダーを指定すると、フォルダー内の全てのファイルが対象になります。
再帰的に、フォルダー内のフォルダーも対象になります。
特定のサブフォルダーを指定したい場合は、ファイル同様パス付きでフォルダーを指定してください。
フォルダーの指定は、「ステージングエリアにフォルダー内のファイルをすべて追加する」を参考にしてください。