Git та порожні папки

Оскільки добре відомо, що Git не знає папок, а лише файли, порожні структури папок не опиняються у сховищі. Однак, оскільки багато рамок і проектів абсолютно їм потрібні, вони повинні закінчитися там. Поширена практика полягає у створенні так званих файлів-заповнювачів (часто їх називають .gitkeep), які неявно визначають структуру папки. Ці файли можна легко створити і, за бажанням, також забезпечити ігнорування інших файлів у папках.


Спочатку ми створюємо тестовий сховище і створюємо кілька папок:

434e6616f335599d241482f169f68f1b

Тепер у нас є така структура папок:

434e6616f335599d241482f169f68f1b

Статус git -u не показує нам змін, як очікувалося:

Git та порожні папки

Тепер ми використовуємо файл find для створення файлів-заповнювачів у всіх необхідних місцях:

434e6616f335599d241482f169f68f1b

Зараз ми отримали таку структуру папок / файлів:

434e6616f335599d241482f169f68f1b

Статус git -u тепер показує, що всі папки (неявно) потрапляють у сховище:

Git та порожні папки

Якщо ми хочемо переконатися, що структура папки завжди опиняється у сховищі, але не будь-які файли (крім файлів-заповнювачів), ми створюємо gitignore:

434e6616f335599d241482f169f68f1b

Ми використовуємо синтаксис подвійної зірки :

434e6616f335599d241482f169f68f1b

Перший рядок рекурсивно ігнорує всі файли та папки (на будь-якому рівні) у папці "foo", другий рядок виключає всі папки (на будь-якому рівні) рекурсивно з цього правила, а третій рядок виключає всі файли .gitkeep (на будь-якому рівні) .

Тепер ми створюємо кілька тестових файлів:

434e6616f335599d241482f169f68f1b

Статус git -u тепер показує нам бажаний результат:

Git та порожні папки

Назад