اختبار جيتينيور
قم بلصق قواعد .gitignore الخاصة بك وقائمة مسارات الملفات لمعرفة الملفات التي تم تجاهلها بالضبط، والقاعدة والسطر المحددين، وقواعد النفي التي تم إيقافها بصمت بسبب تجاهل الدليل الأصلي بالفعل.
النتيجة
"لماذا لا يعمل نفي .gitignore الخاص بي؟" هو أحد أكثر أسئلة git شيوعاً، والإجابة الصادقة هي نفسها دائمًا تقريبًا: محاولة "!pattern" إعادة تضمين ملف داخل دليل استبعدته قاعدة سابقة بالفعل لا يمكن أن تنجح أبدًا، لأن git لا ينزل إلى الأدلة التي تم تجاهلها لإعادة التحقق من أي شيء بداخلها. تعمل هذه الأداة على إعادة تنفيذ خوارزمية مطابقة .gitignore الفعلية لـ git - وليس تقريبًا - على وجه التحديد حتى تتمكن من التقاط هذا الموقف وشرحه بالضبط، جنبًا إلى جنب مع كل قاعدة نمطية أخرى يدعمها git.
الصق قواعد .gitignore في مربع واحد وقائمة مسارات الملفات (واحد في كل سطر، مثل `dist/index.js` أو `node_modules/foo/bar.js` أو `.env`) في المربع الآخر، وتقوم الأداة بتقييم كل مسار تمامًا بالطريقة التي تتبعها git: يتم تخطي التعليقات والأسطر الفارغة، ويتم تجريد المسافات الزائدة ما لم يتم الهروب، والبادئة `!` تلغي القاعدة، والبادئة `/` يثبته في الجذر بدلاً من السماح له بالمطابقة في أي عمق، ويقيده `/` اللاحق إلى الدلائل، وفئات الأحرف `*`، `?`، `[abc]` و`**` (المطابقة عبر حدود الدليل) تعمل جميعها وفقًا لقواعد الكرة الأرضية الموثقة.
والأهم من ذلك، أنه يتم فحص المسارات حسب الدليل من الجذر إلى الأسفل، بنفس الطريقة التي يعمل بها محرك التجاهل الخاص بـ git - وليس عن طريق اختبار المسار الكامل مقابل كل قاعدة على حدة. هذا ما يجعل من الممكن اكتشاف حالة النفي الميت بشكل صحيح: إذا تم تجاهل `dist/` في السطر 3 وحاول `!dist/keep.js` لاحقًا إنقاذ ملف واحد بداخله، فإن هذه الأداة تبلغ عن `dist/keep.js` باعتباره لا يزال متجاهلاً، وتسمي قاعدة السطر 3 كسبب، وتضع علامة على النفي بشكل منفصل على أنه مظلل بدلاً من التظاهر بصمت بأنه يعمل.
يمنح جدول النتائج كل مسار تم اختباره صفًا خاصًا به مع حكم واضح متجاهل بنعم/لا، ونص القاعدة الدقيق ورقم السطر الذي قررها، و- كلما كان ذلك مناسبًا - ملاحظة باللغة البسيطة تشرح النفي المظلل أو قاعدة الدليل الأصل الموروثة. هذه هي التفاصيل التي تحول ملف .gitignore المربك إلى ملف يمكنك التفكير فيه بالفعل قبل الالتزام.