今回やること
この記事では、git add の使い分けを練習します。全部追加、ファイル単位の追加、一部だけ追加の違いを確認します。
git addは「何を次のcommitに入れるか」を選ぶ操作です。
前提条件
- Gitリポジトリがある
git statusとgit diffの基本がわかる- 学習用ファイルで試す
Step 1: 複数ファイルを変更する
学習用に2つのファイルを変更します。
echo "Git memo" >> README.md
echo "temporary note" > memo.txt
状態を確認します。
git status
Step 2: 1ファイルだけ追加する
README.md だけステージします。
git add README.md
状態を見ます。
git status
README.md はステージ済み、memo.txt は未ステージのように分かれます。
Step 3: 全部追加する
すべての変更をステージする場合は、次を使います。
git add .
便利ですが、関係ない変更も入る可能性があります。
git add . の前には、必ず git status と git diff で内容を確認します。
Step 4: ステージ済み差分を見る
git diff --staged
ここに表示される内容が、次のcommitに入ります。
Step 5: 一部だけ追加する
1つのファイル内で、変更の一部だけをcommitに入れたい場合があります。そのときは対話的追加を使います。
git add -p
表示された変更の塊ごとに、入れるかどうかを選びます。
| 入力 | 意味 |
|---|---|
y | この変更を追加 |
n | この変更を追加しない |
q | 終了 |
? | ヘルプ |
Step 6: コミットする
ステージ済み差分を確認してからコミットします。
git diff --staged
git commit -m "docs: update git memo"
よくあるエラー
| 状況 | よくある原因 | 確認すること |
|---|---|---|
| 関係ないファイルまでcommitした | git add . を確認なしで使った | git diff --staged を見る |
| 変更がcommitされない | addしていない | git status を見る |
git add -p が難しい | 差分が大きすぎる | 変更を小さく分ける |
| 一時ファイルが入った | .gitignore がない | 無視設定を追加する |
まとめ
git add は、次のcommitに入れる変更を選ぶ操作です。git add ファイル名 は安全に範囲を絞れます。git add . は便利ですが、関係ない変更を入れやすいです。commit前には git diff --staged を確認します。