「git commit」を行う前に当然のように使っている「git add」コマンドですが、詳しい使い方や理由を知らずにコマンドを叩いている方もいるのではないでしょうか。
そこで、この記事では「git add」の使い方と、オプションについて解説していきます。addの取り消し方法も合わせて紹介します。
この記事の内容
Git addとは
「git add」コマンドを理解するために、まずはソースの格納場所に関する用語の確認しておきましょう。
- ワーキングツリー:ソースを追加・編集しているファイル
- インデックス:コミットするためのファイルを登録する場所
- ローカルリポジトリ:変更内容(コミット)を保存しておく場所
- リモートリポジトリ:同様に変更内容(コミット)を保存しておく場所。インターネット上にあるので複数の人と共有が可能。
「git add」とは、“ワーキングツリー”で変更したファイルを”インデックス”に登録するためのコマンドです。
「git add」コマンドで、なぜわざわざ”インデックス”に入れるのか?直接Commitすればよいのでは?という疑問出てくるかもしれません。
追加や変更したファイルを「git add」コマンドによって”インデックス”に登録しておくメリットは、次のCommit予定のファイルを差分として確認することができる点です。
そのため、Commit漏れを防止したり、複数のファイルをまとめてCommitすることで変更履歴がわかりやすくなります。
Git addの使い方
「git add」コマンドを使うには、先にローカルリポジトリを作成する必要があります。ローカルリポジトリの作成方法については、次のページで解説しています。
「git add」の基本的な使い方は次の通りです。
- まずファイルの更新状況を見るために「git status」コマンドを実行します。
$ git status
- ワーキングツリーで追加・変更した差分が赤い文字で表示されます。
この更新状況を見ながらどのファイルをAddするかを決めます。
- ワーキングツリーで追加・変更した差分が赤い文字で表示されます。
- 「git add」コマンドを実行してファイルをインデックスに登録します。
$ git add
ファイルパスはファイルやディレクトリのパスを入力します。- 実行例
$ git add test.php
- 実行例
- 「git status」コマンドを再度実行して差分を確認します。
- 緑で表示されている箇所がインデックスされているファイルです。「git commit」を実行する際に、インデックスに登録されたファイルがCommitされます。
- 複数のファイルやディレクトリを登録する場合は並べて記述すればOKです。
$ git add test.php /core
上記のコマンド例は、「test.php」と「core」のディレクトリをインデックスに同時に登録します。
git addでよく使うオプション
git addでよく使うオプションには以下のようなものがあります。
インデックスの一括登録
git addの後にピリオドをつけると確認した差分が全てインデックスに登録されます。
$ git add .
–allオプションを付けることで、ピリオドを付けた場合と同じように全てのファイルがインデックスに登録されます。
$ git add -A
または
$ git add --all
以下のようにワイルドカードで、ファイル名のパターンで一括登録することもできます。
$ git add *.php
変更したファイルのみインデックスに登録
–updateオプションを使うと、変更したファイルのみをインデックスに登録することができます。新規追加されたファイルは登録されません。
$ git add -u ファイル名
または
$ git add --update ファイル名
更新部分を選択してインデックスに登録
–patchオプションを付けると、ファイル内の変更箇所ごとに、登録する(「y」キー) or 登録しない(「n」キー)を対話的に選択することができます。
$ git add -p
または
$ git add --patch
- 実行例
AddとCommitをまとめて実行する
ちなみに、Addを省略してCommit時に同時に実行することもできます。
AddとCommitを同時に行う場合は、次のようにCommit時にファイルパスを指定します。
$ git commit
Git addを取り消しする方法
Git addでインデックスに登録したファイルを取り消したい場合があると思います。
インデックスを取り消すには、次のように「git rm –cached」コマンドを使用します。
$ git rm --cached
- 実行例
例として「test.php」を取り消すには以下のように操作します。「git status」コマンドで確認すると、test.phpがインデックスから解除されたことが確認できます。
以上、「git add」コマンドの基本的な使い方とオプションの解説でした。
コメント