使い方
- 使っているプロジェクトの言語、フレームワーク、エディター、OSにチェックを入れてください。やり直すにはすべて解除を押します。
- 作成した.gitignoreファイルを読みます。各テンプレートには名前が付き、別のテンプレートがすでに挙げている行は1度だけ表示されます。
- コピーかダウンロードを押し、テキストをプロジェクトの最上位のフォルダに「.gitignore」(先頭のドット付き)という名前で保存します。
テンプレートの結合の仕組み
選んだテンプレートはそれぞれ1つのセクションになり、「# ==== Node ====」のような名前の行で始まります。セクションの順序はページのリストの順に従うため、同じ選択からは常に同じファイルができます。
- ファイル内にすでにあるパターンは、再び現れても省きます。
- ファイル内にすでにあるコメントも、同じように省きます。
- 空行は行の間に残し、各セクションの先頭と末尾からは削除します。
- 前のテンプレートがすべての行を挙げているテンプレートは、何も追加しないため、名前の行も付きません。
重複する行と「!」の記号
Gitは.gitignoreファイルのパターンを順に読み、後のパターンが前のパターンを上書きします。「!」で始まるパターンは、前のパターンで除外されたファイルを再び含めます(gitignore(5))。そのため、重複するパターンは、2つのコピーの間にある行が同じ種類の場合に限って省きます。除外のパターンなら、間に「!」で始まる行があってはならず、「!」で始まるパターンなら、間に除外の行があってはなりません。そうでない場合は結果が変わるため、重複を残します。
テンプレートの出所
51のテンプレートは、GitHubが新しいリポジトリ向けに用意しているテンプレート集、github/gitignoreのファイルのコピーです。このテンプレート集はCC0 1.0 Universalで公開されており、テンプレートはパブリックドメインに置かれています。結合を除き、各テンプレートの行はそのまま残します。セクションの名前には、翻訳しないプロジェクト名を使います。
このファイルが扱わないこと
- 使っているツールが作るファイルは分かりません。アップロード用のフォルダや、ローカルの設定ファイルなど、その行は自分で追加してください。
- パターンが影響するのは、Gitがまだ追跡していないファイルだけです。すでに追跡しているファイルは、git rm --cachedを実行するまで追跡され続けます。
- エディターやOSのファイルは、多くの場合、グローバルな無視設定(core.excludesFile)に置くのが適しています。そうすれば、プロジェクトのファイルに行を書かなくても、パソコン上のすべてのプロジェクトがそれらを無視します。
計算例:CとC++
Cを選んだ後にC++を選ぶと、パターンとコメントの行が77行のファイルになります。Cのセクションは46行を追加します。C++のセクションは31行を追加し、Cのセクションがすでに挙げている23行(*.o、*.obj、*.soなど)は省きます。それらのコピーの間に「!」で始まる行はないため、重複は省かれます。
| テンプレート | 追加した行 | 省いた行 |
|---|---|---|
| C | 46 | 0 |
| C++ | 31 | 23 |
よくある質問
.gitignoreファイルは、サーバーに送られますか?
いいえ。テンプレートはページに組み込まれており、結合はブラウザ内で行われます。そのため、作ったファイルは保存するまでお使いの端末にとどまります。
2つのテンプレートが同じ行を持つとき、なぜ1度だけ表示されるのですか?
結合は最初のコピーを残し、後のコピーを省きます。同じパターンを繰り返しても結果は変わらないからです。例外は「!」で始まる行の後の重複で、結果が変わるおそれがあるため、そのコピーは残します。
.gitignoreで、すでに追跡しているファイルを追跡対象から外せますか?
いいえ。パターンが影響するのは、Gitがまだ追跡していないファイルだけです。リポジトリにすでにあるファイルの追跡を止めるには、そのファイルに対してgit rm --cachedを実行してください。その後、パターンがそのファイルにも適用されます。
エディターやOSのファイルは、プロジェクトの.gitignoreに書くべきですか?
書いてもかまいませんが、多くの場合は、core.excludesFileで設定するグローバルな無視設定の方が適しています。パソコン上のすべてのプロジェクトに効くため、プロジェクトのファイルには、そのプロジェクト自体に関わる行だけを残せます。
テンプレートは最新ですか?
このツールを最後に更新した時点の、github/gitignoreのファイルのコピーです。リポジトリは時間とともに変わるため、GitHubには新しいバージョンのテンプレートがあるかもしれません。
出典
- github/gitignore:テンプレート集、CC0 1.0 Universal(英語)
- gitignore(5):パターンの規則、Gitのドキュメント(英語)
- CC0 1.0 Universal:テンプレートのライセンス(英語)
数値と文章の最終確認日:2026年11月10日火曜日。