از آنجا که Git پوشه ای نمی شناسد ، فقط پرونده ها ، ساختارهای پوشه خالی به مخزن ختم نمی شوند. با این حال ، از آنجا که بسیاری از چارچوب ها و پروژه ها کاملاً به آنها احتیاج دارند ، باید در همان جا به پایان برسند. یک روش معمول ایجاد پرونده های به اصطلاح placeholder (که غالباً .gitkeep نامیده می شوند) ، که به طور ضمنی ساختار پوشه را مشخص می کنند. این پرونده ها را می توان به راحتی ایجاد کرد و در صورت تمایل ، از نادیده گرفتن سایر پرونده ها در پوشه ها نیز اطمینان حاصل کرد.
ابتدا یک مخزن آزمایش ایجاد می کنیم و چند پوشه فرعی ایجاد می کنیم:
434e6616f335599d241482f169f68f1b
اکنون ساختار پوشه زیر را داریم:
434e6616f335599d241482f169f68f1b
همانطور که انتظار می رفت ، وضعیت git -u هیچ تغییری به ما نشان نمی دهد:
اکنون ما از find برای ایجاد پرونده های نگهدارنده مکان در همه مکان های مورد نیاز استفاده خواهیم کرد:
434e6616f335599d241482f169f68f1b
اکنون ساختار پوشه / پرونده زیر را دریافت کرده ایم:
434e6616f335599d241482f169f68f1b
دستگاه گوارش وضعیت -u اکنون نشان می دهد ما که تمام پوشه ها (به طور ضمنی) تا پایان در مخزن:
اگر اکنون می خواهیم اطمینان حاصل کنیم که ساختار پوشه همیشه در مخزن ختم می شود ، اما هیچ پرونده ای (به غیر از پرونده های نگهدارنده مکان) ، یک gitignore ایجاد می کنیم:
434e6616f335599d241482f169f68f1b
ما از نحو دو ستاره:
434e6616f335599d241482f169f68f1b
خط اول به طور بازگشتی تمام پرونده ها و پوشه ها (در هر سطح) را در پوشه "foo" نادیده می گیرد ، خط دوم به طور بازگشتی همه پوشه ها را از این قانون (در هر سطح) و خط سوم همه پرونده های .gitkeep (در هر سطح) را حذف می کند .
حالا بیایید چند فایل آزمایشی ایجاد کنیم:
434e6616f335599d241482f169f68f1b
یک وضعیت git -u اکنون نتیجه مطلوب را به ما نشان می دهد: