.gitignore で全ファイルをデフォルト無視にする方法

.gitignore Everything by Default

.gitignore で全ファイルをデフォルト無視にする方法

Git リポジトリに .DS_Store や node_modules、IDE 設定ファイルなどの不要なファイルを誤ってコミットしてしまう問題を解決するための手法を紹介。従来の「デフォルトで許可し、必要なファイルだけ無視する」アプローチを逆転させ、「デフォルトで全て無視し、必要なファイルだけ許可する」設定を提案しています。具体例として Go プロジェクトの .gitignore を示し、明示的に許可したファイルのみが追跡されることを説明。また、typescript-go の 207 行に及ぶ .gitignore を引き合いに出し、この手法の有用性を強調しています。

デフォルトで全てを無視し、特定のファイルだけを許可するという考え方です。
  1. rcfox

    これは悪いアドバイスのように思えます。私は誤って余分なファイルをコミットしたことはほとんどありませんが、コミットするつもりのファイルを無視リストから外し忘れることは100%あるでしょう。

    すべてをgitignoreする初期設定を行うなら、通常のファイルをgitignoreする初期設定を行うのはどうでしょうか?すべてのリポジトリにコピーするテンプレートを作成してください。

  2. Brajeshwar

    かなりの数の開発者が、まるで一人で働いていて、十分な人数の人々やプロジェクトと仕事をしたことがないかのようなアドバイスをすることは奇妙です。

    この場合、`.gitignore_global` が彼が言及した通常の容疑者、`.DS_Store ファイル、IDE設定、圧縮ファイルなど` を処理します。たとえ何かがうまくいかなくても、それは通常、重要なファイルが入る前に最初のスキャフォールド中に捕捉されます。

    新しく若い初心者開発者と仕事をしているなら、グローバルなgitignore、ローカル、設定、ドットファイルなどについての典型的なレッスンを与えてください。あなたのものをインスピレーションや出発点として与えてください。

    編集:私のものがインターネット上で最高のドットファイルではないことは知っていますが、これは複数のデバイス、複数のアイデンティティ(仕事、プロジェクト、個人など)を簡単に切り替えるのに役立ちました。最近それをクリーンアップし、Claude Codeで自動化、テストなどを追加しました。 https://github.com/brajeshwar/dot

  3. isityettime

    `git add` を正しく使うことを学ぶのはどうですか?あなたはいつも `git add -A` を叩くことにそんなに固執していますか?.gitignoreをまったくいじらずに、ワーキングツリーにコミットされていないファイルを置いておくことは難しくありません。

  4. caseyw

    私はデフォルトでは無視せず、明示的に欲しいファイルだけをステージングします。

    ペアプログラミング中に誰かが「git add .」と言うのを何度聞いたかわかりませんが、私はいつもその選択に困惑します。

    理解はできますが、一貫して選択的であるよりも、すべてを追加することから生じる問題を多く見てきました。それぞれのやり方でいいでしょう。

  5. flexagoon

    > その他のジャンク(例えばCLAUDE.md)で、リポジトリに置くべきでないもの

    CLAUDE.md/AGENTS.mdがどうして「リポジトリに置くべきでないジャンク」なのでしょうか?プロジェクトでエージェントを使用していて、プロジェクト固有のルールがあるなら、なぜ他の人があなたのリポジトリでエージェントを使用するときに、それらのルールにアクセスできず、より悪いコードを生成することを望むのですか?

  6. yipinwong

    非常にセキュリティエンジニア的な考え方ですね。

    VPSではすべてのポートをブロックしてから、一つずつ開けます。

    ここでもファイルに対して同じアプローチを取っています。

    私が見る唯一の欠点は、どれを許可するかを知ることです。ポートの場合は簡単ですが、ファイルは多くの異なる拡張子を持つことができます。

    アプリやCLIなどは、これまで見たことのない拡張子のファイルを作成することがあり、問題を引き起こす可能性があります。

    それ以外は、このアプローチは気に入っています。

  7. matthewmc3

    すべてを無視することには確信が持てませんが、私がgitワークフローに加えた最高の変更の一つは、`.*` を ~/.config/git/ignore に追加して、デフォルトで全てのドットファイルを無視することでした。

    私のプロジェクトでは、今では一般的なものを無視解除するためのボイラープレートが必要です(!.gitignore、!.gitattributes、!.github、!.editorconfig など)。しかし、その後はいつでも、.foo.langファイルや.tmp/.cacheディレクトリ、.code_analysis.mdのようなClaudeヘルパー、.todos.txtなどを、.gitignoreの管理を忘れるという影響を気にせずにプロジェクトに置くことができます。もっと多くの人がこの方法を取らないのは驚きです。

  8. ryanbrunner

    このアプローチの問題(彼らの最初の例がすでに示している)は、ほぼ即座に「このタイプのファイルはOK」という解決策から始めることになり、何かをgitに入れるべきかどうかはファイルタイプと強い相関関係があるわけではないということです。

    これは `git status` を妨げ、実質的に自分で変更を追跡することを強制します(無視されたファイルはそこに表示されないため)、また `git add .` が安全であるかもしれないのに安全であるという誤った感覚を植え付ける可能性があります。

この日のほかの記事

2026-09-05