.gitignore — файл, который говорит Git какие файлы НЕ отслеживать.
Зачем нужен?
Без .gitignore можно случайно закоммитить:
- node_modules/ — 200 МБ зависимостей
- .env — пароли от БД и API ключи
- *.log — логи на десятки МБ
- .DS_Store — мусор macOS
Что НЕ коммитить
# Зависимости (устанавливаются через pip/npm)
__pycache__/
*.pyc
.venv/
venv/
node_modules/
# Секреты и пароли — НИКОГДА!
.env
.env.local
secrets.yml
*.pem
*.key
# Скомпилированный код
dist/
build/
*.exe
*.pyc
# Логи и временные файлы
*.log
*.tmp
# Системные файлы ОС
.DS_Store # macOS
Thumbs.db # Windows
# IDE конфиги
.vscode/
.idea/
# Базы данных (локальные)
*.sqlite
*.sqlite3
db.sqlite3
Синтаксис
secret.txt # конкретный файл
logs/ # папка
*.log # все с расширением
**/temp.txt # в любом подкаталоге
!important.log # исключение — НЕ игнорировать
# комментарий
Шаблоны по языкам
Python / Django
__pycache__/
*.py[cod]
.venv/
venv/
dist/
build/
*.egg-info/
.env
db.sqlite3
media/
staticfiles/
Node.js
node_modules/
dist/
build/
.next/
npm-debug.log*
.env
Java
*.class
*.jar
target/
build/
.gradle/
Готовые шаблоны: gitignore.io или при создании репозитория на GitHub.
Управление
Глобальный .gitignore (для всех проектов):
git config --global core.excludesfile ~/.gitignore_global
Проверить, игнорируется ли файл:
git check-ignore -v node_modules/
git status --ignored
Если случайно закоммитили секрет
- Немедленно смените скомпрометированный ключ/пароль
- Удалите из истории:
bash git filter-branch --tree-filter 'rm -f .env' HEAD git push --force - Учтите: старые коммиты могут остаться в форках
Распространённые ошибки
node_modules # ❌ — игнорирует файл, не папку
node_modules/ # ✅ — игнорирует папку
.env # ❌ — пробел в начале, не сработает
.env # ✅
Создавай .gitignore в самом начале проекта — удалять файл из истории Git сложнее, чем не добавлять его.
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!