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

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


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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

Як і слід було очікувати, git status -u не показує нам змін:

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

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

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

434e6616f335599d241482f169f68f1b

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

434e6616f335599d241482f169f68f1b

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

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

434e6616f335599d241482f169f68f1b

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

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

Назад