img

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

22 октября
20:00
Бесплатный вебинар
Как стать Python - разработчиком?
От самых основ — до поиска
работы
Ведущий — Сурен Хоренян.
Руководитель команды разработки бэкенд интерфейсов
Записаться
img
img

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

Ссылка
скопирована
Программирование
Скидка 25%
Python Advanced. Продвинутый курс
Освойте асинхронное и метапрограммирование, изучите аннотацию типов и напишите собственное приложение на FastAPI. Улучшите свои навыки Python, чтобы совершить быстрый рост вашего грейда до уровня middle.
Получи бесплатный
вводный урок!
Пожалуйста, укажите корректный e-mail
отправили вводный урок на твой e-mail!
Получи все материалы в telegram и ускорь обучение!
img
Еще по теме:
img
Гипервизор - это программное обеспечение для виртуализации, используемое для создания и запуска виртуальных машин (ВМ). Гипервиз
img
Виртуализация серверов позволяет запускать несколько виртуальных машин на одном физическом сервере. Запуск виртуальных машин (ВМ
img
Сегодня мы рассмотрим, как настроить и использовать PHP в проекте. Но прежде чем начать, нужно понять, что такое PHP. Что такое
img
Как разработчик, вы знаете, что HTML расшифровывается как HyperText Markup Language (язык разметки гипертекста). HTML — это язык
img
Бесконечные споры вокруг искусственного интеллекта приводят к путанице. Существует много терминов, которые кажутся похожими, но
img
SVG расшифровывается как масштабируемая векторная графика. Это веб-дружелюбный векторный формат файлов, используемый для отображ
Комментарии
22 октября
20:00
Бесплатный вебинар
Как стать Python - разработчиком?