github/gitignore · Dotnet.gitignore
شرح قالب .gitignore لـ .NET
يشرح سبب تجاهل Dotnet.gitignore لـ bin وobj وDebug وRelease وحزم NuGet وسجلات MSBuild الثنائية ونتائج الاختبارات و.env، والفرق بينه وبين قالب VisualStudio.
Dotnet.gitignore قالب موجز لمشاريع .NET بنمط SDK (مشاريع C# وF# المنشأة عبر dotnet new). وكما يوضح التعليق في رأس القالب، إن كنت تستخدم Visual Studio فالأفضل استخدام قالب VisualStudio معه، إذ يحوي قواعد أكثر بكثير لبيئة التطوير.
إن كنت تطوّر في VS Code أو Rider أو سطر الأوامر، فيكفي هذا القالب وحده لحجب معظم نتائج البناء ومخلفات الأدوات.
شرح القواعد
| النمط | ما الذي يتجاهله ولماذا |
|---|---|
[Bb]in/[Oo]bj/[Dd]ebug/[Rr]elease/x64/x86/bld/ | مخرجات البناءالتجميعات (assemblies) والملفات الوسيطة (مثل obj/project.assets.json) التي ينشئها dotnet build. تلتقط الأقواس فروق حالة الأحرف مثل Bin وbin. |
artifacts/project.lock.jsonproject.fragment.lock.json | مخرجات .NETartifacts/ مجلد تخطيط المخرجات الموحّد المتاح بدءًا من .NET 8، وproject.lock.json نتيجة الاستعادة من أيام project.json القديمة. |
*.nupkg*.snupkg | حزم NuGetالحزم وحزم الرموز التي ينشئها dotnet pack. إنها مخرجات تُنشر في موجز NuGet. |
*.binlog[Tt]est[Rr]esult*/[Bb]uild[Ll]og.*TestResult.xmlnunit-*.xmlCodeCoverage/ | السجلات ونتائج الاختباراتسجلات MSBuild الثنائية (الخيار -bl) ونتائج الاختبار والتغطية. قد تحوي السجلات الثنائية قيمًا حساسة مثل متغيرات البيئة، فاحذر عند مشاركتها. |
.env~$**~ | البيئة والملفات المؤقتةملف متغيرات البيئة، وملفات القفل التي تنشأ عند فتح مستندات Office (~$مستند.docx)، والنسخ الاحتياطية للمحررات. |
ملاحظات عملية
- تتجاهل قاعدة
[Ll]og/مجلداتlogعلى أي عمق. إن كان اسم مجلد مساحة أسماء (namespace) في الشيفرةLogفأضف قاعدة استثناء. - لا يُتجاهَل
packages.lock.json(ملف قفل NuGet). إن كنت تستخدم وضع القفل فأودِعه. - إذا حفظت أسرار المستخدم خارج المشروع (في ملف تعريف المستخدم) عبر
dotnet user-secretsفلن تحتاج إلى القلق بشأن gitignore.
القالب الأصلي
Dotnet.gitignore
## A streamlined .gitignore for modern .NET projects## including temporary files, build results, and## files generated by popular .NET tools. If you are## developing with Visual Studio, the VS .gitignore## https://github.com/github/gitignore/blob/main/VisualStudio.gitignore## has more thorough IDE-specific entries.#### Get latest from https://github.com/github/gitignore/blob/main/Dotnet.gitignore# Build results[Dd]ebug/[Dd]ebugPublic/[Rr]elease/[Rr]eleases/x64/x86/[Ww][Ii][Nn]32/[Aa][Rr][Mm]/[Aa][Rr][Mm]64/bld/[Bb]in/[Oo]bj/[Ll]og/[Ll]ogs/# .NET Coreproject.lock.jsonproject.fragment.lock.jsonartifacts/# ASP.NET ScaffoldingScaffoldingReadMe.txt# NuGet Packages*.nupkg# NuGet Symbol Packages*.snupkg# dotenv environment variables file.env# Others~$**~CodeCoverage/# MSBuild Binary and Structured Log*.binlog# MSTest test Results[Tt]est[Rr]esult*/[Bb]uild[Ll]og.*# NUnit*.VisualState.xmlTestResult.xmlnunit-*.xml
مصدر القوالب: github/gitignore/Dotnet.gitignore @356fd7b (2026-09-11) · CC0-1.0