ملف .gitignore واحد لجميع تقنيات مشروعك
تجمع أداة إنشاء .gitignore هذه القوالب الجاهزة للغات البرمجة وأطر العمل وأدوات البناء والمحررات وأنظمة التشغيل في ملف واحد منسق. اختر Node وNext.js، وأضف macOS وWindows وVS Code، لتحصل على ملف .gitignore منظم بأقسام واضحة، مع إزالة الأنماط المكررة ومساحة مخصصة لقواعدك الخاصة. القوالب مستخلصة من مستودع github/gitignore الرسمي، ويتم تجميع كل شيء محليًا داخل متصفحك.
كيفية إنشاء ملف .gitignore
- 1اكتب اسم لغة أو إطار عمل أو محرر أو نظام تشغيل في مربع البحث — مثل
pythonأوunityأوjetbrains— وانقر على العنصر لإضافته. اضغط Enter لإضافة أول نتيجة مطابقة. - 2ادمج أكبر عدد ممكن من القوالب التي يحتاجها مشروعك. يتكون مشروع الويب النموذجي عادةً من لغة وإطار عمل ومحرر الأكواد ونظام التشغيل.
- 3أضف مسارات مخصصة لمشروعك في قسم أسطر مخصصة، مثل
/uploads/أو*.sqlite. - 4انسخ النتيجة أو انقر على تنزيل كملف
.gitignoreوضعه في المجلد الرئيسي لمستودع Git الخاص بك.
ما الذي يفعله ملف .gitignore
يحدد ملف .gitignore الملفات التي لا ينبغي لـ Git تتبعها: التبعيات القابلة للتنزيل تلقائيًا بواسطة مديري الحزم (node_modules/ وvendor/)، ومخرجات البناء والترجمة (dist/ وtarget/)، والملفات المؤقتة، والسجلات، وإعدادات المحررات، والبيانات السرية مثل .env. يؤدي استبعادها إلى تقليل حجم المستودع وجعل الفروقات (diffs) واضحة وتفادي تسريب بيانات الاعتماد الحساسة.
يؤثر الملف فقط على الملفات غير المتتبعة حاليًا (untracked). إذا كان هناك ملف مضاف ومسجل بالفعل في Git، فلن يؤدي إدراجه في .gitignore إلى حذفه تلقائيًا؛ شغّل git rm --cached <file> (أو git rm -r --cached <dir> للمجلدات) وأنشئ commit للتوقف عن تتبعه مع الاحتفاظ بنسختك المحلية.
صيغة وقواعد أنماط .gitignore
ترتيب القواعد أمر حاسم: فالقاعدة الأخيرة المطابقة هي التي تفوز دائمًا، ولهذا تأتي الاستثناءات مثل !.vscode/settings.json بعد النمط العام .vscode/*.
- *.log
- النمط بدون شرطة مائلة يطابق على أي عمق داخل المستودع: يتجاهل كل ملف ينتهي بـ .log.
- /build
- الشرطة المائلة في البداية تقيد النمط بالمسار الذي يحتوي على .gitignore، مما يؤدي إلى تجاهل مجلد build في المستوى الرئيسي فقط.
- dist/
- الشرطة المائلة في النهاية تطابق المجلدات فقط ولا تطابق أي ملف عادي باسم dist.
- **/temp
- النجمتان تطابقان أي عدد من المجلدات المتداخلة: مجلد temp في المسار الرئيسي أو في أي مسار فرعي.
- !.env.example
- علامة التعجب في البداية تعيد تضمين ملف تم استبعاده بقاعدة سابقة. لا يمكن إعادة تضمين ملف إذا كان مجلده الرئيسي مستبعدًا بالكامل.
- # تعليق
- الأسطر التي تبدأ بـ # هي تعليقات؛ الأسطر الفارغة تعمل كفواصل. ضع شرطة مائلة عكسية قبل # أو ! لمطابقتها حرفيًا.
كيفية دمج القوالب وإزالة التكرار
يتحول كل قالب إلى قسم يحمل عنوان ### الاسم ###. عند تفعيل خيار إزالة الأنماط المكررة، يتم حذف الأنماط التي ظهرت في أقسام سابقة من الأقسام اللاحقة، وتُزال كتل التعليقات الفارغة ليظل الملف مختصرًا وواضحًا. يتم الاحتفاظ بأنماط الاستثناء المنفية في مواضعها للحفاظ على صحة منطقها.
غالبًا ما تتداخل قوالب أدوات البناء وأطر العمل — حيث يتجاهل كل من Node وNext.js وVite مجلد node_modules وملفات السجلات — وبالتالي فإن إزالة التكرار توفر عادةً خُمس أسطر الملف أو أكثر.
ملفات التجاهل: للمشروع، وعالمية، ومحلية
قم بتسجيل (commit) ملف .gitignore الخاص بالمشروع ليشاركه جميع أعضاء الفريق، مع قصر محتواه على الملفات التي ينتجها المشروع نفسه. أما الملفات الخاصة بجهازك الشخصي — مثل .DS_Store وThumbs.db ومجلدات محرر الكود — فيفضل وضعها في ملف تجاهل عالمي عبر الأمر git config --global core.excludesFile ~/.gitignore_global. وللقواعد الخاصة بك وحدك في مستودع معين، استخدم .git/info/exclude الذي لا يتم تسجيله أبدًا.
ملفات تثبيت الإصدارات مثل package-lock.json وpoetry.lock وCargo.lock للتطبيقات يجب تسجيلها في المستودع لضمان تثبيت نفس الإصدارات عبر كل البيئات. ولمعرفة القاعدة التي تتجاهل ملفًا معينًا، شغّل git check-ignore -v path/to/file.
احرص على إبقاء المفاتيح السرية بعيدة عن Git
يتجاهل قالب البيئة والبيانات السرية ملفات .env والمفاتيح الخاصة وملفات الاعتماد الشائعة مع الاحتفاظ بملف .env.example لتوثيق المتغيرات المطلوبة. تجنّب ملفات الأسرار يحمي الإيداعات المستقبلية فقط: إذا تم رفع مفتاح إلى المستودع سابقًا، قم بتغييره فورًا لأنه سيظل مسجلاً في تاريخ Git. أدوات ذات صلة: حاسبة chmod لأذونات الملفات وأداة إنشاء robots.txt للتحكم بزواحف الويب.
الأسئلة الشائعة
- أين يجب أن أضع ملف .gitignore؟
- في المجلد الرئيسي لمستودعك، بجوار مجلد .git مباشرة. يمكنك أيضًا إضافة ملفات .gitignore في المجلدات الفرعية لتطبيق قواعدها على تلك المجلدات تحديدًا.
- لماذا يستمر Git في تتبع ملف بعد إضافته إلى .gitignore؟
- ينطبق .gitignore فقط على الملفات غير المتتبعة مسبقًا. نفّذ الأمر git rm --cached <file> (أو git rm -r --cached <folder> للمجلدات) وأنشئ commit ليتوقف Git عن تتبعه دون حذفه من جهازك.
- هل يجب أن أتجاهل package-lock.json أو yarn.lock؟
- كلا، بالنسبة للتطبيقات يجب تسجيلها في المستودع. تضمن هذه الملفات تثبيت نفس إصدارات الحزم بدقة عبر جميع الأجهزة ويجب عدم تجاهلها.
- هل ينبغي إدراج مجلدات .vscode أو .idea في .gitignore؟
- الإعدادات الشخصية فقط في الغالب. يتجاهل قالب VS Code مسار .vscode/* ولكنه يبقي على settings.json وtasks.json وlaunch.json المشتركة؛ بينما يتجاهل قالب JetBrains كامل مجلد .idea.
- كيف أتجاهل ملف .DS_Store في جميع مشاريعي؟
- أضفه إلى ملف تجاهل عالمي: أنشئ ~/.gitignore_global يحتوي على .DS_Store وشغّل الأمر git config --global core.excludesFile ~/.gitignore_global.
- كيف أتجاهل جميع محتويات مجلد باستثناء ملف واحد؟
- تجاهل محتويات المجلد وليس المجلد نفسه، ثم استثنِ الملف المطلوب: اكتب folder/* متبوعًا بـ !folder/keep.txt في السطر التالي. كتابة folder/ تستبعد المجلد بأكمله ولا يمكن استثناء أي ملف بداخله.
- من أين تأتي هذه القوالب؟
- تم استخلاصها وتنقيحها من مستودع github/gitignore الرسمي المرخص برخصة CC0 بعد استبعاد الإدخالات القديمة. راجع النتيجة دائمًا للتأكد من مطابقتها لاحتياجات مشروعك.