img

Что такое .gitkeep? Как отслеживать и добавлять пустые папки в Git

Предположим, что вы хотите полностью изменить структуру каталогов вашей кодовой базы. 

Вы хотите переместить некоторые папки выше, некоторые – ниже, а также переместить большое количество файлов в новые папки, которые вы собираетесь создать.

Вы начинаете перемещать код, параллельно проверяя, все ли работает, и добавляете несколько папок, которые вам пригодятся в следующем проекте. 

На данный момент эти папки пустые. Вы все равно начнете следующий проект через пару дней, так что будет лучше, если вы добавите эти новые папки, раз уж вы начали перемещать кодовую базу. 

Вы добавляете все это в свою ветку проекта, и вы готовы к тому, что кто-то это протестирует. Так что вы сообщаете тем, кто будет инспектировать код, что вы закончили работу со Slack.

После чего они клонируют вашу ветку, но проверка вашего кода заканчивается провалом, так как вы забыли добавить все новые папки, которые должны были добавить. 

Подожите… что?

Что же случилось?

Git не может добавлять пустые каталоги. Он может лишь отслеживать файлы.

Если вы попробуете добавить пустую папку, в вашу ветку она не попадет, несмотря на то, что эта папка будет существовать на вашем локальном компьютере.

Именно поэтому, если кто-то попробует клонировать ваш код, он не получит ту же структуру папок, которая имеется на вашем локальном компьютере.

Итак, что же делать, если такой вариант не работает?

Как использовать .gitkeep?

Так вот, мы знаем, что Git отслеживает только файлы, поэтому нам нужно добавить что-то в папку.

Вы можете добавить что угодно. Все, что от вас требуется, это просто добавить какой-то фиктивный файл для того, чтобы быть уверенным в том, что папка отслеживается и может быть добавлена.

Вы можете просто скопировать и вставить пустой текстовый файл file.txt, и это сработает. Вы можете даже добавить туда изображение котика.

И тем не менее, существует довольно распространенная типовая практика для решения этой проблемы. Она заключается в том, что вам необходимо поместить в ваши пустые папки файл с именем .gitkeep.

Это не какая-то особенная функция Git! Вы можете назвать этот файл как вам угодно. Нет ничего особенного в названии .gitkeep. Некоторые разработчики, например, вместо этого файла добавляют .gitignore.

Правда, название .gitignore может создать путаницу, так как вы не пытаетесь заставить Git игнорировать ваш файл, а просто добавляете его в свою ветку. 

Так или иначе, добавив этот обычный файл в свои папки, вы сможете гарантировать, что, когда придет время, вы сможете добавить эти папки в свою ветку проекта. 

Заключение

.gitkeep - это довольно распространенная вещь, которую можно наблюдать в кодовых базах, где Git должен отслеживать пустую папку.

Имя вашего фиктивного файла не обязательно должно быть .gitkeep, но вы, как разработчик, будете постоянно сталкиваться именно с этим названием.

Ссылка
скопирована
Получите бесплатные уроки на наших курсах
Все курсы
Программирование
Скидка 25%
Python программист с нуля
Стань разработчиком на одном из самых популярных языков программирования.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
SQL или NoSQL, вот в чём вопрос! И как раз с этим вопросом мы поможем сегодня разобраться. Что использовать в каких случаях, где есть какие преимущества и как возможно использовать их все вместе.
img
Вебхуки позволяют различным системам обмениваться данными в реальном времени. В этой статье мы разберём, что такое вебхук, как он работает, где и зачем его использовать, а также как настроить.
img
Redis — один из самых популярных инструментов для хранения данных. В статье разбираем, что такое Redis и как его можно использовать.
img
Маска подсети помогает определить, какие устройства находятся в одной сети, а какие – за её пределами. В этой статье разберём, что такое маска подсети, зачем она нужна и как её использовать.
img
Деплой (развертывание) приложения — это этап разработки, на котором приложение размещается и запускается на сервере. Это позволяет начать его использование. В статье разберемся, как это происходит.
28 апреля
20:00
Бесплатный вебинар
Выбираем оркестратор для DevOps