【Git・GitHub完全入門】.gitignoreで管理外ファイルを除外する方法とベストプラクティス 🚫📁
1. はじめに:なぜ.gitignore
が必要なのか?
Gitでプロジェクトを管理していると、ある日こんな経験をしたことはありませんか?
- 自分のローカル設定ファイル(
settings.json
や.env
など)がリモートリポジトリに上がってしまった -
node_modules
やdist
ディレクトリが誤ってcommitされてしまい、Pushが重すぎる… - チームメンバーから「余計なファイルが入ってる!」と怒られた…
その原因の多くは、.gitignore
の設定不足または誤用にあります。
この記事では、.gitignore
の基本から実践的な運用テクニック、さらにチーム開発やCI/CDでの応用まで、エンジニアが明日から使えるノウハウを丁寧に解説していきます。
2. .gitignore
とは?概要と仕組み
.gitignore
とは
.gitignore
ファイルは、Gitが追跡しないファイルやディレクトリを指定するための設定ファイルです。プロジェクトルート(または任意のサブディレクトリ)に配置することで、無視すべきファイルを明示的に管理できます。
なぜ使う?
- 機密情報(例:APIキー、DBパスワード)をGitに含めないため
- ビルドや依存関係ファイルを管理から除外し、リポジトリをスリムに保つため
- 個人環境特有の設定ファイルによるコンフリクトを防ぐため
3. 実践:.gitignore
の書き方と例
3.1 基本構文
# 単一ファイルを無視
secret.env
# ディレクトリ全体を無視
node_modules/
# 拡張子で指定
*.log
# サブディレクトリすべてに適用
**/temp/
# 除外の打ち消し(強制追跡)
!important.txt
3.2 プロジェクト別の例
Node.jsプロジェクト
node_modules/
dist/
.env
npm-debug.log
Pythonプロジェクト
__pycache__/
*.pyc
.env
*.log
React(Create React App)
node_modules/
build/
.env.local
.DS_Store
3.3 .gitignore
生成に便利なサービス
GitHub公式のテンプレート集を使うと便利です:
もしくはCLIで生成できるサービス:
npx gitignore node
npx gitignore python
4. 実務に役立つTips & よくあるミス
✅ Tips
-
チームで
.gitignore
を共有する: リポジトリ直下に配置しておけば、全員が同じルールで開発可能 -
.git/info/exclude
の活用: ローカルだけで無視したいファイルがある場合はこちらが便利 -
機密ファイルは
.env.example
を用意: 本番用の.env
は無視し、テンプレートのみ共有する文化を作る
❌ よくあるミス
パターン | 問題点 | 解決方法 |
---|---|---|
.gitignore に書いたのに反映されない |
すでにGitで追跡されている |
git rm --cached でキャッシュ削除 |
.gitignore のルールが効いていない |
パス指定が誤っている |
git check-ignore -v ファイル名 で確認 |
大事なファイルをうっかり無視 | 除外ルールが広すぎる | 除外→再追跡ルールで細かく制御 |
# キャッシュから削除して無視対象に変更する
git rm --cached .env
5. 応用:グローバルignore、CIでの利用、GitHub Actionsとの連携
5.1 グローバル.gitignore
すべてのリポジトリで共通のignoreルールを設定したいとき:
git config --global core.excludesfile ~/.gitignore_global
.gitignore_global
に以下のように記述:
.DS_Store
Thumbs.db
*.log
5.2 CI/CDパイプラインとの関係
.gitignore
の設定が甘いと、CI環境に無関係なファイルがPushされてビルド時間が長くなったり、Secretsの漏洩リスクが高まります。CI/CDの観点からも.gitignore
の見直しは重要です。
5.3 GitHub Actionsと.gitignore
GitHub Actionsのworkflowでは、.gitignore
されたファイルは通常ステージングされません。もしCIで必要なファイルが無視されているなら、.gitignore
を一時的に書き換える、もしくはArtifactsで渡すのが安全です。
6. まとめ:.gitignoreは「プロジェクトの健康を守る第一歩」
✅ メリット
- 不要なファイルをリポジトリに含めない
- チーム間の混乱を防ぐ
- 機密情報の漏洩リスクを下げる
- CI/CDが軽量化される
⚠️ 注意点
- 一度追跡されたファイルは、
.gitignore
だけでは無視されない -
.gitignore
ルールの粒度に注意(広すぎると必要なファイルまで無視する)
🚀 今すぐ試そう!
この記事を読んだら、ぜひ自分のプロジェクトに戻って .gitignore
を見直してみてください。そして、以下を確認してみましょう:
-
.env
やnode_modules
が含まれていないか? - チーム全体でルールが統一されているか?
- ローカル専用ignoreに
info/exclude
を使っているか?
.gitignore
は地味ながらも、プロジェクトの品質・セキュリティ・効率性を左右する重要な存在です。
ご質問・改善案があれば、ぜひコメントでお知らせください!
この記事が皆さんの開発ライフの一助となれば幸いです。
ご希望あれば、シリーズ記事の続編「Gitのrebaseの正しい使い方」「GitHub Actionsで自動デプロイ」なども執筆可能です!