Перейти к содержимому

7. .gitignore

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

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

В файле .gitignore каждая строка представляет собой шаблон. Git сравнивает пути файлов и папок с этими шаблонами. Если путь соответствует шаблону, Git игнорирует файл или папку.

Вот несколько простых правил:

  • # - Строки, начинающиеся с #, являются комментариями.
  • / - Указывает, что шаблон должен применяться только к файлам и папкам в корневом каталоге репозитория.
  • * - Подстановочный знак, соответствующий любому количеству символов.
  • ? - Подстановочный знак, соответствующий одному символу.
  • ! - Инвертирует шаблон. Если файл соответствует шаблону, начинающемуся с !, он будет включен в отслеживание, даже если он соответствует более раннему шаблону.

Создадим файл .gitignore в корне вашего репозитория.

Окно терминала
touch .gitignore

Теперь откройте .gitignore в вашем текстовом редакторе и добавьте несколько правил:

# Игнорировать все файлы с расширением .log
*.log
# Игнорировать папку node_modules
node_modules/
# Игнорировать файл config.json, находящийся в корне репозитория
/config.json
# Игнорировать все файлы .tmp, но не файл important.tmp
*.tmp
!important.tmp

В этом примере:

  • Мы игнорируем все файлы, заканчивающиеся на .log.
  • Мы игнорируем всю папку node_modules, содержащую установленные библиотеки Javascript.
  • Мы игнорируем config.json в корне репозитория. Это полезно для хранения локальных настроек, которые не нужно публиковать.
  • Мы игнорируем все файлы с расширением .tmp, кроме important.tmp, который мы намеренно включаем.

Важно: .gitignore влияет только на файлы, которые еще не отслеживаются Git. Если вы уже добавили файл в репозиторий, а затем добавили правило для его игнорирования, Git продолжит отслеживать этот файл. Чтобы перестать отслеживать, нужно удалить его из индекса Git:

Окно терминала
git rm --cached <имя_файла>
git commit -m "Удаляем файл из отслеживания"

В реальных проектах .gitignore используется повсеместно.

  • Веб-сайты: Игнорируются файлы кэша, логи, скомпилированные ресурсы (например, CSS и JavaScript после минификации), файлы конфигурации с секретными ключами API.
  • Приложения: Игнорируются файлы сборки, временные файлы, папки с зависимостями (например, node_modules в JavaScript-проектах или venv в Python-проектах).
  • Фреймворки: Каждый фреймворк имеет свои особенности, но общая цель - игнорировать все, что не является частью исходного кода и необходимо для разработки. Например, в проекте на React игнорируется папка build после сборки проекта.

Пример для React-проекта:

node_modules/
build/
.env

Пример для Python-проекта:

__pycache__/
*.pyc
venv/
  • .gitignore позволяет исключить файлы и папки из отслеживания Git.
  • Он должен находиться в корне репозитория.
  • Используйте шаблоны для указания игнорируемых файлов и папок.
  • .gitignore влияет только на неотслеживаемые файлы.
  • Удалите файлы из индекса Git, чтобы перестать их отслеживать.
  • Используйте .gitignore для хранения локальных настроек и секретных ключей.

Конструктор .gitignore — выбери технологии: