نظرًا لأن Git لا يعرف المجلدات، فإن الملفات فقط وهياكل المجلدات الفارغة لا تنتهي في المستودع. وبما أن العديد من الأطر والمشاريع تحتاج إلى هذه العناصر بشكل مطلق، فيجب أن ينتهي بها الأمر هناك. من الممارسات الشائعة إنشاء ما يسمى بالملفات النائبة (غالبًا ما تسمى .gitkeep)، والتي تحدد ضمنيًا بنية المجلد. يمكنك إنشاء هذه الملفات بسهولة، والتأكد من تجاهل الملفات الأخرى الموجودة في المجلدات، إذا رغبت في ذلك.
أولاً ، نقوم بإنشاء مستودع اختبار وإنشاء بعض المجلدات الفرعية:
434e6616f335599d241482f169f68f1b
لدينا الآن هيكل المجلد التالي:
434e6616f335599d241482f169f68f1b
كما هو متوقع ، لا تظهر لنا حالة git -u أي تغييرات:

سنستخدم الآن البحث لإنشاء ملفات العناصر النائبة في جميع المواقع المطلوبة:
434e6616f335599d241482f169f68f1b
لقد تلقينا الآن بنية المجلد / الملف التالية:
434e6616f335599d241482f169f68f1b
توضح لنا حالة git -u الآن أن جميع المجلدات (ضمنيًا) تنتهي في المستودع:

إذا أردنا الآن التأكد من أن بنية المجلد تنتهي دائمًا في المستودع ، ولكن ليس أي ملفات (بصرف النظر عن ملفات العناصر النائبة) ، فإننا ننشئ gitignore:
434e6616f335599d241482f169f68f1b
نحن نستفيد من بناء جملة نجمة مزدوجة:
434e6616f335599d241482f169f68f1b
يتجاهل السطر الأول بشكل متكرر جميع الملفات والمجلدات (على أي مستوى) في مجلد "foo" ، ويستبعد السطر الثاني بشكل متكرر جميع المجلدات من هذه القاعدة (على أي مستوى) ويستبعد السطر الثالث جميع ملفات .gitkeep (على أي مستوى) .
لنقم الآن بإنشاء بعض ملفات الاختبار:
434e6616f335599d241482f169f68f1b
تظهر لنا حالة git -u الآن النتيجة المرجوة:
