.gitignore に含めるべきファイル、含めるの
更新日:2025/01/13
Git のリポジトリを作成する際、.gitignore ファイルを適切に設定することは非常に重要です。誤って機密情報や不要なファイルをリポジトリに含めないために、以下のようなファイルやディレクトリを .gitignore に記述するのが一般的です。
gitignore に含めるべき内容
1. 機密情報関連
プロジェクトで利用する API キーやデータベースの接続情報などが記載されたファイルは必ず .gitignore に含めるべきです。
.env*.env.local(例えばdevelopment.env.localやtesting.env.local` など)config/secret.yaml
これらのファイルを誤って公開すると、第三者に機密情報を悪用されるリスクがあります。
サンプルファイルを用意するのが一般的
.env.exampleのように、必要な設定項目を記載したサンプルファイルを用意し、環境ごとの.envファイルは.gitignoreに含めるのが一般的です。
# APIキー
API_KEY=your_api_key_here
# データベース接続情報
DB_HOST=localhost
DB_PORT=3306
DB_USER=root
DB_PASSWORD=your_password_here
# デバッグ設定
DEBUG=true2. ビルドやキャッシュ関連
ビルドプロセスで生成されるファイルやキャッシュデータは、リポジトリには不要です。これらは開発環境ごとに異なる場合が多く、不要な差分が生じる原因になります。
node_modules/(npm や Yarn の依存関係)dist/(ビルド成果物).next/(Next.js のビルドキャッシュ)target/(Java や Scala のビルド成果物).cache/(ビルドキャッシュ)
package-lock.json を .gitignore に含めるかどうか
| 含めるべき場合 | ・依存関係の固定が必要な場合 ・npm 公式では、 package-lock.json をリポジトリに含めることが推奨されています。 |
| 含めないべき場合 | ・動的な依存関係管理が必要な場合 |
3. OS 特有のファイル
開発環境の OS によって自動生成されるファイルもリポジトリには不要です。
.DS_Store(macOS)Thumbs.db(Windows)ehthumbs.db(Windows).Spotlight-V100/(macOS)
4. IDE やエディタ関連
開発環境で使用する IDE やテキストエディタが生成する設定ファイルやキャッシュファイルも、通常はリポジトリに含めません。
.vscode/(VSCode のワークスペース設定).idea/(IntelliJ IDEA)*.iml*.swp(Vim).history/(一部エディタの履歴ファイル)
5. テストやログ関連
テスト実行中に生成されるファイルやログファイルもリポジトリには不要です。
coverage/(コードカバレッジデータ)*.log(ログファイル)test-output/
6. プラットフォーム固有のファイル
特定のプラットフォームやサービスと連携している場合、関連する設定ファイルを .gitignore に含めることがあります。
.env.production(サーバー環境で使用する環境ファイル)terraform.tfstate(Terraform の状態ファイル).dockerignore(Docker 用の無視リスト)
7. サンプル .gitignore ファイル
以下は一般的な .gitignore ファイルの例です:
# 依存関係のディレクトリ
node_modules/
# 環境変数ファイル
.env
.env.local
# IDE設定
.vscode/
# アップロードされたファイル
uploads/
# ログファイル
*.log
# macOSのシステムファイル
.DS_Store# 環境変数
.env
*.env.local
# Node.js 関連
node_modules/
dist/
# macOS
.DS_Store
# Windows
Thumbs.db
# VSCode
.vscode/
# Logs
*.log
# Coverage
coverage/
# ビルド成果物
build/
# IDE/エディタ関連
.idea/
*.swpgit status で正しく設定されているか確認
git status
git status.gitignoreに記載されているファイル git statusでは一切表示されない
誤って不要なファイルをコミットしないよう、git status や git diff を活用して確認しましょう。
リポジトリの再初期化
.gitignoreの設定を後から変更した場合、特に以下のような状況で再初期化は有効
- セキュリティ上の懸念
- 環境変数ファイル(.env)が誤ってコミット履歴に残っている
- APIキーなどの機密情報が含まれている可能性がある
- 設定の確実性
- .gitignoreの設定が正しく機能しているか不安
- 既に追跡されているファイルを確実に除外したい
- クリーンな状態の確保
- 不要なファイルの追跡を完全に防ぎたい
- コミット履歴を整理したい
# 隠しファイルも含めて表示
ls -Force
# 隠しファイルも含めて削除
Remove-Item .git -Recurse -Force> ls -Force
Mode LastWriteTime Length Name
---- ------------- ------ ----
d--h-- 2025/01/13 10:35 .git
d----- 2025/01/02 18:50 node_modules
d----- 2025/01/01 16:24 src
-a---- 2025/01/01 16:27 243 .env
-a---- 2025/01/13 10:26 254 .env.sample
-a---- 2025/01/13 10:11 258 .gitignore
-a---- 2025/01/01 18:42 928 docker-compose.yml
-a---- 2025/01/02 19:25 718 Dockerfile
-a---- 2025/01/02 18:50 104009 package-lock.json
-a---- 2025/01/02 18:50 384 package.json
> Remove-Item .git -Recurse -Force
> ls -Force
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2025/01/02 18:50 node_modules
d----- 2025/01/01 16:24 src
-a---- 2025/01/01 16:27 243 .env
-a---- 2025/01/13 10:26 254 .env.sample
-a---- 2025/01/13 10:11 258 .gitignore
-a---- 2025/01/01 18:42 928 docker-compose.yml
-a---- 2025/01/02 19:25 718 Dockerfile
-a---- 2025/01/02 18:50 104009 package-lock.json
-a---- 2025/01/02 18:50 384 package.json
-
検索
(例) debug search etc.. -
カテゴリー
-
mixhostでのWordPress利用について
更新日:2024/04/02
303 view
-
scrollHint
更新日:2024/03/13
251 view
-
XML Sitemap Generator for Google不具合のダウングレード対応、代替プラグイン
更新日:2024/06/13
243 view
-
【SnowMonkey】納品までのフローまとめ
更新日:2025/02/15
164 view
-
【Snow Monkey】ショートコードで編集画面で任意の場所にHTMLファイルを挿入
更新日:2025/04/18
131 view
-
【Googleサーチコンソール】検索画面で表示させたくない「Googleのインデックス削除」
更新日:2024/06/07
131 view
-
tailwindcss使い方
更新日:2024/03/13
125 view
-
キーワード検索で上位表示させる方法【SEO】
更新日:2023/10/28
120 view
-
Recline: GitHub Copilotで動作するClaude 3.5 Sonnet搭載の開発支援ツール
更新日:2025/01/20
115 view
-
WordPressプラグイン「All-in-One WP Migration」のトラブル
更新日:2022/03/31
84 view
-
ワードプレスセキュリティー対策まとめ【2025年】「site guard wordpress」「BackWPup バージョン5でUI変更!?」
更新日:2025/02/25
77 view
-
VSCodeで開発効率を劇的に向上させる!Roo Code(Roo-Cline)プラグイン完全ガイド
更新日:2025/04/06
75 view
-
Express、FastAPIを使用し、二重fetch構成のメリット
更新日:2025/04/26
51 view
-
SSHを使用してGitHubのリポジトリをクローン、複数の接続元で公開鍵をディレクトリで区別する方法
更新日:2025/01/13
49 view
-
「JSONスキーマ」と「Few-shot Learning」で実現する次世代生成AIソフトウェア開発の可能性
更新日:2025/07/06
44 view
-
Supabase 初心者向け解説、Supabase CLI インストール(Scoop)
更新日:2025/06/07
44 view
-
Windowsショートカットエラーの原因と解決方法「このショートカットは、リンク先のファイルが変更または移動されているので、正しく機能しません」
更新日:2025/02/09
40 view
-
リファクタリング【VSCode Javasctipt Python】
更新日:2025/03/09
37 view
-
Next.jsでAWS Amplifyを使ってPDFアップロード機能を実装、Fast APIにPOST(こちらはApp runner)
更新日:2025/06/06
37 view
-
形態素解析とは?初心者でもわかるツールの使い方と実践例
更新日:2025/02/08
34 view