github/gitignore · C++.gitignore
شرح قالب .gitignore لـ C++
يشرح سبب تجاهل C++.gitignore لملفات الكائنات والمكتبات والملفات التنفيذية وشجرة بناء CMake وcompile_commands.json ومجلد تثبيت vcpkg، وفخ قاعدة Makefile.
يضيف C++.gitignore إلى قواعد مخرجات الترجمة المشابهة لقالب C شجرةَ بناء CMake ونتائج CTest ومجلد التثبيت في وضع البيان (manifest) لـ vcpkg. ولأن قالب Fortran في مستودع القوالب يشير إلى هذا الملف كما هو، فإنه يتضمن أيضًا قواعد ملفات وحدات Fortran (.mod و.smod).
أكثر سطر يستدعي الحذر هو Makefile. القاعدة مقصود بها حجب ملفات Makefile التي ينشئها CMake، لكن في المشاريع التي تُبنى بملف Makefile مكتوب يدويًا سيُتجاهَل ذلك الملف أيضًا.
شرح القواعد
| النمط | ما الذي يتجاهله ولماذا |
|---|---|
*.o*.obj*.slo*.lo*.d*.gch*.pch | ملفات الكائنات وذاكرة الترويساتنتائج ترجمة كل وحدة ترجمة، وملفات الاعتماديات، والترويسات المترجمة مسبقًا. كلها يُعاد إنشاؤها من الشيفرة المصدرية. |
*.so*.dylib*.dll*.so.**.a*.lib*.lai*.la*.exe*.out*.app | المكتبات والملفات التنفيذيةنواتج الربط. تُنشأ بشكل مختلف على كل منصة، لذا توزَّع عبر الإصدارات لا عبر المستودع. |
build/Build/build-*/CMakeFiles/CMakeCache.txtcmake_install.cmakeinstall_manifest.txt | شجرة بناء CMakeالذاكرة المؤقتة والملفات المولَّدة التي ينشئها CMake في مرحلة التهيئة. يُخزَّن في CMakeCache.txt مسار المترجم على حاسوبك، فلا فائدة منه لغيرك. |
Makefile | ملفات Makefile المولَّدةيحجب ملفات Makefile التي ينشئها مولّد Unix Makefiles في CMake داخل شجرة المصدر. ولأنه بلا شرطة مائلة، يُتجاهَل Makefile على أي عمق. |
compile_commands.jsonvcpkg_installed/Testing/.cache/ | مخرجات الأدواتقاعدة بيانات الترجمة التي يقرؤها clangd وغيره، والحزم التي ثبّتها vcpkg، ونتائج CTest، وذاكرة فهرسة clangd. كلها تختلف باختلاف البيئة المحلية. |
*.pdb*.ilk*.dwo*.tmp*.log*.bak*.swp | معلومات التصحيح والملفات المؤقتةرموز التصحيح، وملفات الربط التزايدي، والملفات المؤقتة والاحتياطية للمحررات. |
*.mod*.smod | وحدات Fortranملفات واجهات الوحدات التي ينشئها مترجم Fortran. لا أثر لها في مشاريع C++ الخالصة. |
ملاحظات عملية
- إن كان لديك
Makefileمكتوب يدويًا فأضف!/Makefileأو قاعدة استثناء لذلك المسار. ستتضح المسألة فورًا إذا أدخلت مسارMakefileفي أداة اختبار الأنماط. - بعض الفرق تضع
compile_commands.jsonفي الجذر كرابط رمزي وتشاركه. في هذه الحالة احذف هذا السطر. - لا يُتجاهَل
vcpkg.json(البيان) وvcpkg-configuration.json، فأودِعهما. - إن كنت تستخدم CLion فإن قاعدة
cmake-build-*/في قالب JetBrains تحجب مجلدات بناء بيئة التطوير.
القالب الأصلي
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/
مصدر القوالب: github/gitignore/C++.gitignore @356fd7b (2026-09-11) · CC0-1.0