github/gitignore · Go.gitignore
شرح قالب .gitignore لـ Go
يشرح سبب تجاهل Go.gitignore للملفات الثنائية وملفات الاختبار الثنائية وملفات التغطية وgo.work، ولماذا يجب حجب الملفات التنفيذية بلا امتداد بشكل منفصل.
يتناول Go.gitignore الملفات الثنائية الناتجة عن البناء، ومخرجات الاختبار والتغطية، وملفات مساحة العمل المحلية. ولأن Go ينزّل الاعتماديات إلى ذاكرة الوحدات ($GOPATH/pkg/mod)، لا ينشأ داخل المستودع مجلد ضخم مثل node_modules في Node، والقالب قصير أيضًا.
لا يُتجاهَل go.mod وgo.sum. يسجّل هذان الملفان اعتماديات الوحدة ومجاميعها الاختبارية (checksum)، فيجب إيداعهما.
شرح القواعد
| النمط | ما الذي يتجاهله ولماذا |
|---|---|
*.exe*.exe~*.dll*.so*.dylib | الملفات الثنائية والمكتباتنتائج go build والمكتبات المشتركة المبنية عبر cgo. تُبنى لكل منصة على حدة، لذا توزَّع كمخرجات إصدار لا عبر المستودع. |
*.test | ملفات الاختبار الثنائيةملفات اختبار تنفيذية ينشئها go test -c، ويُلحق باسم الحزمة .test. |
*.outcoverage.**.coverprofileprofile.cov | التغطية والتوصيفنتائج أوامر مثل go test -coverprofile=coverage.out. إنها قياسات تتغير مع كل تشغيل. |
go.workgo.work.sum | مساحة العململفات تُستخدم عند تطوير عدة وحدات معًا محليًا، وتشير إلى مسارات على قرصك. توضح وثائق go help work أيضًا أن وضع go.work تحت إدارة الإصدارات غير مستحسن عمومًا. |
.env | متغيرات البيئةملف يحوي الإعدادات المحلية والقيم السرية. أودِع ملف المثال باسم آخر (مثل .env.example). |
ملاحظات عملية
- على Linux وmacOS، ينشئ
go buildملفًا تنفيذيًا بلا امتداد (باسم الوحدة). لا يحجبه القالب، لذا أضف قاعدة بنفسك مثل/myappأو/bin/. - لا يُتجاهَل
vendor/. بعض الفرق تضع الاعتماديات في المستودع عبرgo mod vendor، فقرر حسب سياسة فريقك. - يتجاهل
*.outكل ملف ينتهي اسمه بـ.out، فإن كنت تستخدم هذا الامتداد لملفات القيم المتوقعة في الاختبارات فأضف استثناءً مثل!testdata/**/*.out. - إن كنت تستخدم GoLand فاختر معه قالب JetBrains.
القالب الأصلي
Go.gitignore
# If you prefer the allow list template instead of the deny list, see community template:# https://github.com/github/gitignore/blob/main/community/Golang/Go.AllowList.gitignore## Binaries for programs and plugins*.exe*.exe~*.dll*.so*.dylib# Test binary, built with `go test -c`*.test# Code coverage profiles and other test artifacts*.outcoverage.**.coverprofileprofile.cov# Dependency directories (remove the comment below to include it)# vendor/# Go workspace filego.workgo.work.sum# env file.env# Editor/IDE# .idea/# .vscode/
مصدر القوالب: github/gitignore/Go.gitignore @356fd7b (2026-09-11) · CC0-1.0