В процессе работы над любым проектом в директории с кодом создаются файлы, которые не являются частью исходного кода. Все эти файлы можно условно разделить на несколько групп:
Инструментарий
Временные файлы
Артефакты
Всё это в обычной ситуации не должно попадать в репозиторий. Как правило, эти файлы не несут никакой пользы с точки зрения исходного кода. Они создаются либо автоматически (кеши, логи), либо по запросу (например, скачиваются зависимости или собирается проект). Главная проблема с этими файлами в их постоянном изменении при, как правило, очень больших размерах. Если добавлять их в репозиторий, то практически в каждом коммите, кроме изменений исходного кода, будет и пачка изменений в этих файлах. Читать историю таких коммитов крайне сложно.
Git позволяет гибко настраивать игнорирование определенных файлов и директорий. Делается это с помощью файла .gitignore, который нужно создать в корне проекта. В этот файл добавляются файлы и директории, которые надо игнорировать. Например:
# В этом файле можно оставлять комментарии
# Имя файла .gitignore
# Файл нужно создать самостоятельно
# Каждая строчка — это шаблон, по которому происходит игнорирование
# Игнорируется файл в любой директории проекта
access.log
# Игнорируется директория в любой директории проекта
node_modules
# Игнорируется каталог в корне рабочей директории
/coverage
# Игнорируются все файлы с расширением sqlite3 в директории db,
# но не игнорируются такие же файлы внутри любого вложенного каталога в db
# например, /db/something/lala.sqlite3
/db/*.sqlite3
# игнорировать все .txt файлы в каталоге doc/
# на всех уровнях вложенности
doc/**/*.txt
Git поддерживает игнорирование файлов, но сам его не настраивает. Для игнорирования файлов и директорий, программист должен создать файл .gitignore
в корне проекта, например как тут и добавить его в репозиторий.
touch .gitignore
# добавляем в файл правила игнорирования по примеру выше
git add .gitignore
git commit ...
Как только .gitignore создан и в него добавлен какой-то файл или директория, игнорирование заработает автоматически. Все новые файлы, попадающие под игнорирование, не отобразятся в выводе команды git status
.
Иногда бывает такое, что программист случайно уже добавил в репозиторий файл, который нужно проигнорировать. В этой ситуации недостаточно обновить правила игнорирования. Дополнительно придется удалить файл или директорию из git с помощью git rm
и закоммитить.
git status
его не отображаетВам ответят команда поддержки Хекслета или другие студенты.
Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.
Наши выпускники работают в компаниях:
С нуля до разработчика. Возвращаем деньги, если не удалось найти работу.
Зарегистрируйтесь или войдите в свой аккаунт