困りごと:すべてのファイルを管理すべき?
😕 こんなファイルも履歴に残すべき?
my-project/
├── index.html ← これは管理したい
├── style.css ← これも管理したい
├── .DS_Store ← Macの隠しファイル...いる?
├── debug.log ← デバッグ用の一時ファイル
├── password.txt ← パスワードが書かれたファイル!
└── node_modules/ ← 大量の外部ライブラリ(数千ファイル)
すべてを管理すると:
- 不要なファイルで履歴が汚れる
- 機密情報が履歴に残ってしまう
- リポジトリが巨大になる
ステージングエリア = 撮影前の準備場所
Gitにはステージングエリアという「準備場所」があります。
写真撮影に例えると...
- 作業ディレクトリ = 撮影現場(散らかっている)
- ステージングエリア = 撮影セット(きれいに整理)
- リポジトリ = アルバム(完成した写真を保存)
作業ディレクトリ ステージングエリア リポジトリ
(編集中) (撮影準備完了) (保存済み)
↓ ↓
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
チャレンジ
- 機密情報(.env)とログファイル(debug.log)は追加しない
- それ以外のファイルをステージングエリアに追加
- 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を活用して、ミスを防ぐ