Файл .gitignore — это конфигурационный файл в корне Git-репозитория, который содержит список файлов и директорий, которые Git должен игнорировать и не отслеживать при коммитах. В этот файл записывают пути к временным файлам, логам, зависимостям, переменным окружения и другим артефактам, которые не должны быть в системе контроля версий.
Зачем это нужно
- Файл
.gitignoreпредотвращает случайный коммит конфиденциальной информации, таких как пароли, API ключи и токены доступа - Игнорирование зависимостей (папка
node_modules,vendor) уменьшает размер репозитория и ускоряет клонирование проекта - Исключение локальных конфигурационных файлов (
.env,config.local.php) позволяет разработчикам использовать персональные настройки без конфликтов - Игнорирование временных файлов операционной системы (
.DS_Store,Thumbs.db) снижает шум в истории коммитов - Исключение файлов кэша, логов и артефактов сборки (
dist,build,.log) предотвращает загрязнение репозитория - Использование
.gitignoreобеспечивает чистоту рабочего директория и упрощает код-ревью - Игнорирование IDE-специфичных файлов (
.vscode,.idea) позволяет разработчикам использовать разные редакторы - Правильно настроенный
.gitignoreпредотвращает случайное внесение незавершённых или отладочных файлов в основную ветку
Пошаговая инструкция
- Откройте командную строку или терминал в корневой директории вашего Git-репозитория
- Создайте файл
.gitignoreкомандойtouch .gitignore(на Linux/Mac) илиtype nul > .gitignore(на Windows) - Откройте файл
.gitignoreв текстовом редакторе (Visual Studio Code, Sublime Text, Notepad++) - Добавьте строку
node_modules/для исключения папки с npm-зависимостями - Добавьте строку
.envдля игнорирования файла с переменными окружения и секретными данными - Добавьте строку
.env.localдля исключения локальной конфигурации переменных окружения - Добавьте строку
dist/илиbuild/для игнорирования директории с собранным кодом - Добавьте строку
.DS_Storeдля исключения системных файлов macOS - Добавьте строку
Thumbs.dbдля исключения кэша миниатюр Windows - Добавьте строку
*.logдля игнорирования всех файлов логов с расширением.log - Добавьте строку
.vscode/для исключения конфигурации VS Code - Добавьте строку
.idea/для исключения конфигурации JetBrains IDE (WebStorm, PhpStorm, IntelliJ) - Добавьте строку
vendor/для исключения PHP-зависимостей (Composer) - Добавьте строку
*.swpи*.swoдля исключения временных файлов Vim - Добавьте строку
.DS_Storeи.AppleDoubleдля полного исключения macOS файлов - Добавьте строку
npm-debug.logдля исключения npm логов - Добавьте строку
yarn-error.logдля исключения ошибок Yarn - Добавьте строку
.cache/для исключения папки кэша приложений - Добавьте строку
*.pycдля исключения скомпилированных Python файлов - Добавьте строку
__pycache__/для исключения кэша Python - Используйте подстановочный символ
*для согласованного совпадения имён (например,*.tmpигнорирует все временные файлы) - Используйте символ
!для исключения файла из игнорирования (например,!.env.exampleесли нужен шаблон) - Используйте слеш
/в конце пути, чтобы указать директорию (например,logs/игнорирует только папку, не файлы) - Сохраните файл
.gitignoreв текстовом редакторе - Выполните команду
git add .gitignoreдля добавления файла в индекс - Выполните команду
git commit -m "Add .gitignore configuration"для коммита файла - Выполните команду
git pushдля отправки файла на удалённый репозиторий - Проверьте работу
.gitignoreкомандойgit status— в списке не должны отображаться игнорируемые файлы - Для повторного применения
.gitignoreк уже отслеживаемым файлам выполнитеgit rm --cached -r .и затемgit add .
Часто задаваемые вопросы
Что делать, если файл был добавлен до создания .gitignore? Удалите файл из отслеживания командой git rm --cached имя-файла, затем добавьте его в .gitignore и сделайте новый коммит.
Как проверить, действительно ли Git игнорирует нужные файлы? Используйте команду git check-ignore -v имя-файла для проверки, применяется ли правило .gitignore к конкретному файлу.
Можно ли использовать разные .gitignore файлы для разных директорий? Да, можно создать .gitignore в любой поддиректории проекта, и правила будут применяться только к этой папке и её содержимому.