Боремся с мусором в Git
Расскажем о простых приемах отбора отслеживаемых файлов вашего проекта. Как можно догадаться, секрет заключается в правильном заполнении файла .gitignore, чем мы и займемся в этой статье.
Так как любой неочевидный программный проект состоит из множества файлов вложенных папок, снова файлов и подпапок (и т д…), контролировать изменения всего этого богатства и тем более постоянно выгружать на сервер, как правило, нецелесообразно. Постоянным изменениям подвергаются лишь отдельные файлы. Для регулирования этих процессов в системе управления версиями Git существует специальный файл под названием .gitignore.
Он состоит из строк, каждая из которых указывает на шаблон имен файлов и папок, подлежащих игнорированию при индексации. При этом порядок применения правил снизу вверх так, что более низкие могут отменить действие верхних (например, задать исключения для вышестоящего шаблона, что делается указанием символа ! перед шаблоном). Ниже перечислю полезные советы для настройки большого проекта.
Исключение всех файлов из корневой директории, кроме имеющих определенное расширение
Инициализируем папку проекта (имя test) для работы с Git (подробнее писал в статье) и вызовем команду git status, чтобы увидеть статус содержимого:
Предположим, нашей целью является выборка только файлов с расширением .py. Тогда создадим файл .gitignore и зададим некоторые правила. Во-первых, исключим все в корневой директории, не относящееся к файлам заданного типа:
Повторно выведем статус содержимого проекта:
В данном случае мы задали правило исключения всего содержимого корневой директории кроме файлов с расширением .py.
Добавление подпапок
В указанном выше случае мы исключили из области индексирования и подпапки:
Однако это ограничение зачастую потребуется снять, для чего в файл .gitignore можно дописать третью строку:
А теперь повторим наши действия:
Создаем правила для подпапок
Аналогичным образом можно настроить правила для подпапок. Изменим файл .gitignore:
Теперь удалим папку db_check из области индексирования и попробуем опять добавить:
Не получается, поэтому по аналогии с приведенным выше примером добавим еще одну строку в .gitignore, разрешив включение файлов *.py:
Дальше можно продолжать вводить более специфические правила.
Следует отметить, что интересные примеры файлов .gitignore для различных языков программирования, исключающих шаблоны артефактов, производимых служебными инструментами можно найти по адресу https://github.com/github/gitignore.