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