github/gitignore · C++.gitignore
Penjelasan template .gitignore C++
Menjelaskan mengapa C++.gitignore mengabaikan objek, pustaka, file eksekusi, pohon build CMake, compile_commands.json, dan folder instalasi vcpkg, serta jebakan aturan Makefile.
C++.gitignore menambahkan pohon build CMake, hasil CTest, dan folder instalasi vcpkg mode manifest pada aturan hasil kompilasi yang mirip template C. Karena di repositori template, template Fortran langsung merujuk file ini, aturan file modul Fortran (.mod, .smod) juga ikut ada.
Baris yang paling harus diwaspadai adalah Makefile. Aturan ini dimaksudkan untuk memblokir Makefile yang dibuat CMake, tetapi pada proyek yang di-build dengan Makefile tulisan sendiri, file itu juga ikut diabaikan.
Penjelasan per aturan
| Pola | Apa yang diabaikan dan mengapa |
|---|---|
*.o*.obj*.slo*.lo*.d*.gch*.pch | Objek dan cache headerHasil kompilasi per unit translasi, file dependensi, dan header yang dikompilasi sebelumnya. Semuanya dibuat ulang dari kode sumber. |
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.app | Pustaka dan file eksekusiHasil linking. Karena dibuat berbeda untuk setiap platform, didistribusikan lewat rilis, bukan repositori. |
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txt | Pohon build CMakeCache dan file hasil generate yang dibuat CMake pada tahap konfigurasi. CMakeCache.txt menyimpan path compiler di komputer Anda sehingga tidak berguna bagi orang lain. |
Makefile | Makefile hasil generateMemblokir Makefile yang dibuat generator Unix Makefiles milik CMake di dalam pohon sumber. Karena tanpa garis miring, Makefile di kedalaman berapa pun diabaikan. |
compile_commands.jsonvcpkg_installed/Testing/.cache/ | Hasil alatBasis data kompilasi yang dibaca clangd dan alat lain, paket yang dipasang vcpkg, hasil CTest, dan cache indeks clangd. Semuanya bergantung pada lingkungan lokal. |
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swp | Informasi debug dan file sementaraSimbol debug, file incremental link, serta file sementara dan cadangan editor. |
*.mod*.smod | Modul FortranFile antarmuka modul yang dibuat compiler Fortran. Tidak berpengaruh pada proyek C++ murni. |
Hal yang perlu diperhatikan dalam praktik
- Jika ada
Makefiletulisan tangan, tambahkan!/Makefileatau aturan pengecualian untuk path tersebut. Jika pathMakefiledimasukkan ke penguji pola, hal ini langsung terlihat. - Ada tim yang menaruh
compile_commands.jsonsebagai symbolic link di root dan membagikannya. Jika demikian, hapus baris ini. vcpkg.json(manifest) danvcpkg-configuration.jsontidak diabaikan, jadi commit keduanya.- Jika memakai CLion, aturan
cmake-build-*/di template JetBrains memblokir folder build IDE.
Template asli
C++.gitignore
# 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/
Sumber template: github/gitignore/C++.gitignore @356fd7b (2026-09-11) · CC0-1.0