0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Git・GitHub完全入門】.gitignoreで管理外ファイルを除外する方法とベストプラクティス 🚫📁

1. はじめに:なぜ.gitignoreが必要なのか?

Gitでプロジェクトを管理していると、ある日こんな経験をしたことはありませんか?

  • 自分のローカル設定ファイル(settings.json.envなど)がリモートリポジトリに上がってしまった
  • node_modulesdistディレクトリが誤って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 を見直してみてください。そして、以下を確認してみましょう:

  • .envnode_modulesが含まれていないか?
  • チーム全体でルールが統一されているか?
  • ローカル専用ignoreにinfo/excludeを使っているか?

.gitignoreは地味ながらも、プロジェクトの品質・セキュリティ・効率性を左右する重要な存在です。


ご質問・改善案があれば、ぜひコメントでお知らせください!
この記事が皆さんの開発ライフの一助となれば幸いです。


ご希望あれば、シリーズ記事の続編「Gitのrebaseの正しい使い方」「GitHub Actionsで自動デプロイ」なども執筆可能です!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?