.gitignore ジェネレーター

次へ

.gitignore がないと、API キーが Git の履歴に残ったり、400 MB もの node_modules が GitHub にプッシュされたりします。このジェネレーターは、Node、Python、Rails、Laravel といったスタックごとにテスト済みのテンプレートを出力し、依存関係フォルダー、ビルド出力、環境ファイルをあらかじめ除外します。

.gitignore を生成する手順

  1. 1

    スタックを選ぶ

    Node、Python、Rails、Laravel、それぞれに固有の一時的な生成物があります。

  2. 2

    生成する

    このツールは共通ルール(.DS_Store、.env、node_modules)とスタック固有のルールを統合します。

  3. 3

    .gitignore として保存する

    最初のコミットの前に、ファイルをリポジトリのルートに配置します。

  4. 4

    コミットする

    .gitignore 自体も追跡すべきです。これはローカルの好みではなく、プロジェクトの一部だからです。

共通ブロックが常に含まれる理由

ルール 無視すべき理由
.DS_Store macOS Finder のメタデータ、他のマシンには一切役立たない
.env 機密情報:API キー、データベースのパスワード、OAuth 認証情報
.env.* 環境ごとのバリアント(ステージング、本番)
!.env.example ただしサンプルファイルは残し、新しい貢献者が構成を把握できるようにする
node_modules/ package.json から再インストール可能。サイズが大きくプラットフォーム依存

スタックごとの追加ルール

スタック 主な追加ルール
Node dist/coverage/npm-debug.log*
Python __pycache__/.venv/*.pyc.pytest_cache/
Rails log/*tmp/*storage/*/public/assets
Laravel vendor//storage/*.key/public/build.phpunit.cache/

よくある間違い

  • .env を早い段階でコミットしてしまい、その後で .gitignore に追加する。ファイルはすでに履歴に含まれているので、git rm --cached .env を実行し、その中にあったすべての機密情報をローテーションしましょう。
  • .env.example.env と一緒に無視してしまう。チームメンバーは環境を立ち上げるためにサンプルが必要です。
  • 広すぎるグロブ*.log は本番に不可欠なログ設定まで隠してしまうことがあります。迷ったらより具体的に指定しましょう。
  • 自分のローカル固有ではないプラットフォーム依存ファイル:個人用ではなく、共有の .gitignore を通じて追加しましょう。

個人用とプロジェクト用の gitignore

自分だけが使うエディタファイル(JetBrains 系 IDE、Emacs)は、各プロジェクトを肥大化させるのではなく、グローバルな gitignore(~/.config/git/ignore)に記述しましょう。

よくある質問

.gitignore は追跡されていないファイルの追加を防ぐだけだからです。すでにコミット済みのファイルの追跡をやめるには git rm --cached path/to/file を実行し、その変更をコミットしてください。以降はルールによって除外されます。

いいえ。ロックファイルはコミットすべきです。そうすればすべての環境でまったく同じバージョンがインストールされます。無視すると「自分のマシンでは動く」という類のバグが再び発生します。

先頭のスラッシュはパターンをリポジトリのルートに固定します。/logs はトップレベルの logs/ ディレクトリだけに一致し、logs は任意の階層にあるすべての logs ディレクトリに一致します。

いいえ。生成されたファイルは保存も記録もされません。ルールを組み立てるためにスタックの選択がサーバーに送信され、マルチステップモードではページのリンクにも含まれますが、ファイルの内容は保存されません。

関連ツール

このツールは他の言語でも利用できます