github/gitignore · C.gitignore
Разбор шаблона .gitignore для C
Почему C.gitignore игнорирует объектные файлы, статические и разделяемые библиотеки, исполняемые файлы, отладочную информацию и файлы сборки модулей ядра Linux.
C.gitignore блокирует по расширениям промежуточные файлы и результаты, которые создают компилятор и компоновщик. Чтобы его можно было использовать с gcc, clang и MSVC, в нём собраны расширения нескольких платформ.
Файлы систем сборки вроде Make или CMake он не охватывает. Если вы используете CMake, обратитесь к шаблону CMake или к шаблону C++, в котором есть правила для CMake.
Разбор правил
| Шаблон | Что и почему игнорируется |
|---|---|
*.o*.obj*.ko*.elf*.d | Объектные файлы и файлы зависимостейРезультаты компиляции каждого исходного файла (.o, .obj), модули ядра (.ko), ELF-бинарники и списки зависимостей от заголовков (.d), которые создаёт компилятор. |
*.gch*.pch | Предкомпилированные заголовкиPrecompiled header в GCC и MSVC. Они привязаны к версии компилятора и параметрам, поэтому в другом окружении непригодны. |
*.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.conf | Сборка модулей ядра LinuxФайлы, которые система сборки ядра (kbuild) оставляет при сборке модулей. Если вы не разрабатываете драйверы, вы почти не встретите их. |
*.ilk*.map*.exp | Побочные файлы компоновщикаФайлы инкрементной компоновки MSVC, карты компоновщика и файлы экспорта. |
На что обратить внимание на практике
- Каталога сборки (
build/) в этом шаблоне нет. Если вы собираете вне дерева исходников (out-of-source), добавьте/build/сами. *.mod*охватывает все расширения, начинающиеся с.mod, поэтому если есть файлы.modдругого назначения (например, файлы данных), добавьте исключение.- Если в репозитории прошивки нужно хранить
.hexдля выпуска, верните только конкретный путь, например!release/*.hex.
Исходный шаблон
C.gitignore
# 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