メインコンテンツへスキップ
レッスン 4 / 15推定時間: 20

ファイルの追跡(git add)

必要なファイルだけを選んでGitの管理対象にする方法を学びましょう

このレッスンの学習目標

  • すべてのファイルを管理する必要がない理由を理解する
  • git addでファイルをステージングエリアに追加できる
  • ステージングエリアの概念を理解する

困りごと:すべてのファイルを管理すべき?

😕 こんなファイルも履歴に残すべき?

my-project/
├── index.html          ← これは管理したい
├── style.css           ← これも管理したい
├── .DS_Store           ← Macの隠しファイル...いる?
├── debug.log           ← デバッグ用の一時ファイル
├── password.txt        ← パスワードが書かれたファイル!
└── node_modules/       ← 大量の外部ライブラリ(数千ファイル)

すべてを管理すると:

  • 不要なファイルで履歴が汚れる
  • 機密情報が履歴に残ってしまう
  • リポジトリが巨大になる

ステージングエリア = 撮影前の準備場所

Gitにはステージングエリアという「準備場所」があります。

写真撮影に例えると...

  1. 作業ディレクトリ = 撮影現場(散らかっている)
  2. ステージングエリア = 撮影セット(きれいに整理)
  3. リポジトリ = アルバム(完成した写真を保存)
作業ディレクトリ    ステージングエリア    リポジトリ
(編集中)         (撮影準備完了)      (保存済み)
     ↓                   ↓                  
  git add            git commit

実践:ファイルをステージングエリアに追加

1. プロジェクトの準備

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

2. 現在の状態を確認

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

すべてのファイルが「Untracked files」(追跡されていないファイル)として表示されます。

3. 特定のファイルを追加

まず、README.mdだけを追加してみましょう:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

README.mdが「Changes to be committed」(コミット予定の変更)に移動しました!

4. 複数ファイルを追加

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

git addのいろいろな使い方

1. すべてのファイルを追加(慎重に!)

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

.は「現在のディレクトリのすべて」という意味。 パスワードファイルも追加されてしまいました!

2. ステージングエリアから除外

間違えて追加したファイルを除外:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

3. 対話的に追加(便利!)

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

なぜステージングエリアが必要?

理由1:選択的にコミットできる

作業中のファイル:
✓ feature.js    ← 完成した新機能
✗ experiment.js ← まだ実験中
✓ bugfix.js     ← バグ修正完了

git add feature.js bugfix.js
# 完成したものだけコミット!

理由2:論理的な単位でコミットを作れる

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

.gitignoreで自動除外

管理したくないファイルを自動的に除外する設定:

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

.gitignoreに記載されたファイルは、git statusに表示されなくなります!

よくあるミスと対処法

ミス1:大きなファイルを追加してしまった

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

ミス2:機密情報を追加してしまった

# もしコミット前なら
git restore --staged secret-file.txt

# .gitignoreに追加して二度と起きないように
echo "secret-file.txt" >> .gitignore

ベストプラクティス

1. こまめにgit statusで確認

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

2. 意味のある単位で追加

良い例:
- git add src/components/Header.js  # ヘッダーの修正
- git add src/styles/header.css     # 関連するスタイル

悪い例:
- git add .  # すべてを一度に(何が含まれるか不明)

3. .gitignoreを最初に設定

プロジェクト開始時に.gitignoreを作成しておくと、ミスを防げます。

まとめ

git addの使い方を学びました!

  • ✅ 必要なファイルだけを選択して追加できる
  • ✅ ステージングエリアで「次にコミットする内容」を準備
  • ✅ .gitignoreで不要なファイルを自動除外
  • ✅ ミスしてもgit restore --stagedで取り消せる

次のレッスンでは、ステージングエリアの内容を実際に履歴として記録(コミット)する方法を学びます!

【実践演習】ステージングエリアの操作

実際にプロジェクトを作成して、適切なファイルだけをステージングエリアに追加してみましょう。

CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

チャレンジ

  1. 機密情報(.env)とログファイル(debug.log)は追加しない
  2. それ以外のファイルをステージングエリアに追加
  3. git statusで確認
CommandAcademy Terminal
Welcome to CommandAcademy Terminal!
Type "help" to see available commands.
user@cmdac:~$

ファイルツリー

/
etc
hosts35B
passwd76B
home
user
tmp
usr
bin
share
var
log

🎯 確認ポイント

  • git addの後は必ずgit statusで確認
  • 機密情報や一時ファイルを追加していないか確認
  • .gitignoreを活用して、ミスを防ぐ

さらに学習を続けるには

素晴らしい学習ペースです!次のレッスンに進むには、無料会員登録をお願いします。無料会員では各コース3レッスンまで学習できます。

無料で続きを学ぶ

各コース3レッスンまで学習可能

学習進捗の自動保存

コース修了証明書の発行