Git

The `git add` command is used to add changes in the working directory to the staging area, preparing them for the next commit.

git add

 Gitの git addコマンドは、Gitリポジトリにおいて変更をステージング(インデックスに追加)するためのコマンドです。このコマンドは、作業ディレクトリ内のファイルやディレクトリの変更をステージングエリアに追加し、次のコミットに含める準備をします。

git addコマンドの使い方

 基本的な使い方は以下の通りです。

Git Bash

git add <パス>

 ここでの <パス> には、ステージングエリアに追加したいファイルやディレクトリのパスを指定します。

ファイルをステージングする
特定のファイルをステージングするには、そのファイル名を指定します。

Git Bash

git add filename.txt
複数のファイルをステージングする
複数のファイルをステージングするには、ファイル名をスペースで区切って指定します。

Git Bash

git add file1.txt file2.txt file3.txt
ディレクトリをステージングする
特定のディレクトリ内のすべての変更をステージングするには、そのディレクトリ名を指定します。

Git Bash

git add directory/
すべての変更をステージングする
作業ディレクトリ内のすべての変更をステージングするには、ドット(.)を使用します。

Git Bash

git add .

git addの動作

 git addコマンドは、以下の3つのタイプの変更をステージングエリアに追加します

新規作成されたファイル
新たに作成されたがまだバージョン管理されていないファイル。
変更されたファイル
既存のファイルに加えられた変更。
削除されたファイル
リポジトリから削除されたファイル。

ステージングエリアとは?

 ステージングエリアは、次にコミットされるファイルや変更のセットを保持する中間領域です。これにより、作業ディレクトリの変更を部分的にコミットしたり、複数の変更をまとめてコミットしたりすることが可能になります。

git statusとの関係

 git addコマンドの前後で git statusコマンドを実行することで、ステージングエリアにどのファイルが追加されているかを確認することができます。

Git Bash

git status

 このコマンドは、作業ディレクトリおよびステージングエリアの状態を表示し、どのファイルが変更され、ステージングされ、コミット準備ができているかを示します。

git add -p

 git add -pコマンドは、Gitのインデックスに追加する変更をインタラクティブに選択するための非常に便利な機能です。このコマンドを使うと、変更されたファイルの中から特定の部分だけを選んでステージングすることができます。

 git add -pは、変更されたファイルを「パッチ」として扱い、そのパッチを一つ一つ確認しながらステージングするかどうかを選択するためのコマンドです。これにより、大きな変更の中から一部だけをコミットすることが可能になり、より細かく、意図的なコミット履歴を作成することができます。

使い方

コマンドの実行

Git Bash

git add -p
または、特定のファイルに対して実行する場合。

Git Bash

git add -p <ファイル名>
インタラクティブなパッチ選択
コマンドを実行すると、変更点ごとに以下のようなプロンプトが表示されます。

Git Bash

Stage this hunk [y,n,q,a,d,e,?]?
それぞれのオプションは以下の意味を持ちます。
  • y: このハンク(変更部分)をステージングする
  • n: このハンクをスキップする
  • q: 現在のハンクをスキップし、プロンプトを終了する
  • a: このハンクと残りのすべてのハンクをステージングする
  • d: このハンクと残りのすべてのハンクをスキップする
  • g: 次のファイルに進む
  • e: ハンクを手動で編集する
  • s: ハンクを分割してステージングする
  • ?: ヘルプを表示する

具体例

 例えば、以下のようなファイルの変更があったとします。

Git Bash

diff --git a/file.txt b/file.txt
index 83db48f..e735a09 100644
--- a/file.txt
+++ b/file.txt
@@ -1,4 +1,4 @@
-Hello World
+Hello Git
	This is a sample file.
	It contains some text.
	More text here.

 git add -p file.txt を実行すると、次のように表示されます。

Git Bash

Stage this hunk [y,n,q,a,d,e,?]?

 ここで y を入力すると、Hello World から Hello Git への変更がステージングされます。n を入力すると、この変更はスキップされます。

 git add -p コマンドは、Gitのステージングプロセスを細かくコントロールできる非常に強力なツールです。特に、大規模な変更を細かく管理したい場合や、コミット履歴をより分かりやすくしたい場合に非常に有用です。インタラクティブに選択できるため、変更内容を確認しながらステージングできる点が大きなメリットです。