مولّد ملفات .gitignore

التالي

غياب ملف .gitignore هو السبب في ظهور مفاتيح واجهة برمجة التطبيقات (API) ضمن سجل مستودع Git، وفي رفع مجلد node_modules بحجم 400 ميجابايت إلى GitHub. يُنتج هذا المولّد قالبًا مُختبَرًا مخصصًا لبيئة التطوير الخاصة بك، سواء كانت Node.js أو Python أو Rails أو Laravel، مع استبعاد مجلدات التبعيات ونواتج البناء وملفات البيئة مسبقًا.

كيفية إنشاء ملف .gitignore

  1. 1

    اختر مجموعة تقنياتك

    سواء كانت Node.js أو Python أو Rails أو Laravel، فلكل منها مجموعتها الخاصة من المخلفات المؤقتة.

  2. 2

    ولّد

    تدمج الأداة القواعد الشائعة (.DS_Store، .env، node_modules) مع القواعد الخاصة بكل مجموعة تقنيات.

  3. 3

    احفظ باسم .gitignore

    ضع الملف في الجذر الرئيسي للمستودع قبل أول عملية تسليم (commit).

  4. 4

    سلّمه (commit)

    يجب تتبع ملف `.gitignore` نفسه؛ فهو جزء من المشروع، وليس تفضيلًا محليًا.

لماذا تكون الكتلة المشتركة موجودة دائمًا

القاعدة سبب التجاهل
.DS_Store بيانات وصفية خاصة بـ Finder في نظام macOS، لا تفيد الأجهزة الأخرى أبدًا
.env أسرار: مفاتيح API، كلمات مرور قواعد البيانات، بيانات اعتماد OAuth
.env.* متغيرات خاصة بالبيئة (التجهيز، الإنتاج)
!.env.example لكن احتفظ بملف المثال ليعرف المساهمون الجدد هيكله
node_modules/ قابل للتثبيت من package.json؛ كبير الحجم وخاص بالمنصة

إضافات خاصة بكل مجموعة تقنيات

المجموعة الإضافات الرئيسية
Node dist/، coverage/، npm-debug.log*
Python __pycache__/، .venv/، *.pyc، .pytest_cache/
Rails log/*، tmp/*، storage/*، /public/assets
Laravel vendor/، /storage/*.key، /public/build، .phpunit.cache/

الأخطاء الشائعة

  • تسليم .env (commit) مبكرًا جدًا ثم إضافته إلى .gitignore. الملف موجود بالفعل في السجل، استخدم git rm --cached .env وغيّر (rotate) كل سر كان موجودًا فيه.
  • تجاهل .env.example مع .env. زملاء الفريق يحتاجون المثال لبدء العمل.
  • أنماط واسعة أكثر من اللازم: قد يُخفي *.log إعدادات سجلات حيوية للإنتاج؛ كن أكثر تحديدًا عند الشك.
  • ملفات خاصة بالمنصة وليست خاصة بك: ساهم بها عبر ملف .gitignore مشترك، وليس عبر ملف شخصي.

gitignore الشخصي مقابل gitignore الخاص بالمشروع

بالنسبة لملفات المحرر الخاصة بك وحدك (مثل JetBrains IDEs أو Emacs)، استخدم ملف gitignore العام الخاص بك (~/.config/git/ignore) بدلًا من تضخيم ملف كل مشروع على حدة.

الأسئلة الشائعة

لأن .gitignore يمنع فقط إضافة الملفات غير المتتبَّعة. لإيقاف تتبع ملف سبق تسليمه (committed)، شغّل الأمر git rm --cached path/to/file، ثم سلّم التغيير؛ وبعد ذلك ستستبعده القاعدة.

لا؛ يجب تثبيت ملفات القفل (lockfiles) لضمان تثبيت نفس الإصدارات بدقة في جميع البيئات. إهمالها يؤدي إلى عودة نوع الأخطاء المعروف بـ“يعمل على جهازي“.

الشرطة المائلة البادئة تثبّت النمط على جذر المستودع. يتطابق /logs فقط مع دليل logs/ في المستوى الأعلى، بينما يتطابق logs مع أي دليل باسم logs مهما كان عمقه.

لا. لا نُخزّن الملف المُنشأ ولا نتتبّعه. يُرسل اختيارك لمجموعة التقنيات إلى خادمنا لبناء القواعد، ويظهر أيضًا في رابط الصفحة في الوضع متعدد الخطوات، لكن محتوى الملف لا يُحتفظ به.

أدوات ذات صلة

الأداة متاحة بلغات أخرى