github/gitignore · C.gitignore

C .gitignore テンプレート解説

C.gitignore がオブジェクトファイル、静的・共有ライブラリ、実行ファイル、デバッグ情報、Linux カーネルモジュールのビルドファイルを無視する理由を説明します。

ジェネレーターで開く C++, VisualStudioCode, Linux, Vim と一緒に開く

C.gitignore はコンパイラーとリンカーが作る中間ファイルと成果物を拡張子単位で防ぐ。gcc・clang・MSVC のどれでも使えるよう、複数プラットフォームの拡張子が一緒に入っている。

Make や CMake のようなビルドシステムのファイルは扱わない。CMake を使うなら CMake テンプレートか、CMake のルールが含まれている C++ テンプレートを参考にする。

ルール別の解説

パターン何を、なぜ無視するか
*.o*.obj*.ko*.elf*.dオブジェクト・依存関係ファイルソースファイルごとに生成されるコンパイル結果(.o.obj)とカーネルモジュール(.ko)、ELF バイナリ、コンパイラーが作るヘッダー依存リスト(.d)である。
*.gch*.pchプリコンパイル済みヘッダーGCC と MSVC の precompiled header である。コンパイラーのバージョンとオプションに結びついているため、他の環境では使えない。
*.lib*.a*.la*.lo*.dll*.so*.so.**.dylibライブラリ静的ライブラリ(.a.lib)、libtool ファイル(.la.lo)、共有ライブラリである。*.so.*libfoo.so.1.2 のようなバージョン付きの名前を捉える。
*.exe*.out*.app*.i*86*.x86_64*.hex実行ファイルリンク結果とマイクロコントローラー用の HEX イメージである。a.out*.out に一致する。
*.dSYM/*.su*.idb*.pdb*.dwoデバッグ情報macOS のシンボルバンドル、GCC の -fstack-usage の結果(.su)、MSVC のデバッグデータベース、分割された DWARF(.dwo)である。
*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.confLinux カーネルモジュールのビルドカーネルのビルドシステム(kbuild)がモジュールを作るときに残すファイルである。ドライバーを開発していなければほとんど目にしない。
*.ilk*.map*.expリンカーの副産物MSVC のインクリメンタルリンクファイル、リンカーマップ、エクスポートファイルである。

実務での注意点

元のテンプレート

C.gitignoreルール 36 行
# Prerequisites*.d# Object files*.o*.ko*.obj*.elf# Linker output*.ilk*.map*.exp# Precompiled Headers*.gch*.pch# Libraries*.lib*.a*.la*.lo# Shared objects (inc. Windows DLLs)*.dll*.so*.so.**.dylib# Executables*.exe*.out*.app*.i*86*.x86_64*.hex# Debug files*.dSYM/*.su*.idb*.pdb# Kernel Module Compile Results*.mod**.cmd.tmp_versions/modules.orderModule.symversMkfile.olddkms.conf# debug information files*.dwo

テンプレートの出典: github/gitignore/C.gitignore @356fd7b (2026-09-11) · CC0-1.0

一緒に使うテンプレート

ほかのテンプレートの解説