github/gitignore · C++.gitignore

Plantilla .gitignore de C++ explicada

Explica por qué C++.gitignore ignora objetos, bibliotecas y ejecutables, el árbol de compilación de CMake, compile_commands.json y la carpeta de instalación de vcpkg, y la trampa de la regla Makefile.

Abrir en el generador Abrir junto con C, JetBrains, VisualStudioCode, VisualStudio

C++.gitignore incluye, además de reglas de artefactos de compilación parecidas a las de la plantilla de C, el árbol de compilación de CMake, los resultados de CTest y la carpeta de instalación del modo manifiesto de vcpkg. Como en el repositorio de plantillas la plantilla de Fortran apunta directamente a este archivo, también contiene reglas para archivos de módulo de Fortran (.mod, .smod).

La línea más delicada es Makefile. Es una regla para bloquear los Makefile que genera CMake, pero en un proyecto que compila con un Makefile escrito a mano, también ignora ese archivo.

Explicación regla por regla

PatrónQué ignora y por qué
*.o*.obj*.slo*.lo*.d*.gch*.pchObjetos y caché de cabecerasSon los resultados de compilación por unidad de traducción, los archivos de dependencias y las cabeceras precompiladas. Todo se recrea a partir del código fuente.
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.appBibliotecas y ejecutablesSon productos del enlazado. Se generan de forma distinta en cada plataforma, así que se distribuyen como versiones y no mediante el repositorio.
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txtÁrbol de compilación de CMakeSon la caché y los archivos generados que CMake crea en la fase de configuración. CMakeCache.txt guarda las rutas del compilador de tu equipo y no le sirve a nadie más.
MakefileMakefile generadosBloquea los Makefile que el generador Unix Makefiles de CMake crea dentro del árbol de código. Al no llevar barra, se ignoran los Makefile a cualquier profundidad.
compile_commands.jsonvcpkg_installed/Testing/.cache/Artefactos de herramientasSon la base de datos de compilación que leen clangd y otros, los paquetes instalados por vcpkg, los resultados de CTest y la caché de índice de clangd. Todo depende del entorno local.
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swpInformación de depuración y archivos temporalesSon símbolos de depuración, archivos de enlazado incremental y archivos temporales y de copia de seguridad del editor.
*.mod*.smodMódulos de FortranSon los archivos de interfaz de módulo que genera el compilador de Fortran. No afectan a proyectos de C++ puro.

Precauciones en la práctica

Plantilla original

C++.gitignore39 líneas de reglas
# Prerequisites*.d# Compiled Object files*.slo*.lo*.o*.obj# Precompiled Headers*.gch*.pch# Linker files*.ilk# Debugger Files*.pdb# Compiled Dynamic libraries*.so*.dylib*.dll*.so.*# Fortran module files*.mod*.smod# Compiled Static libraries*.lai*.la*.a*.lib# Executables*.exe*.out*.app# Build directoriesbuild/Build/build-*/# CMake generated filesCMakeFiles/CMakeCache.txtcmake_install.cmakeMakefileinstall_manifest.txtcompile_commands.json# Temporary files*.tmp*.log*.bak*.swp# vcpkgvcpkg_installed/# debug information files*.dwo# test output & cacheTesting/.cache/

Origen de las plantillas: github/gitignore/C++.gitignore @356fd7b (2026-09-11) · CC0-1.0

Plantillas que suelen usarse juntas

Otras plantillas explicadas