Разбираем 7 ошибок, которые чаще всего ломают рабочий процесс.
1. Работать без веток
Проблема: всё коммитится прямо в main, история превращается в кашу.
# Плохо
git commit -m "fix"
git push origin main
# Хорошо: ветка под каждую задачу
git checkout -b feature/add-login
# ... изменения ...
git commit -m "feat: add user login form"
git push origin feature/add-login
# затем Pull Request → code review → merge
main должен всегда содержать рабочий код.
2. Бессмысленные commit messages
# Плохо
git commit -m "fix"
git commit -m "asdfasdf"
git commit -m "done"
# Хорошо — тип: что сделано
git commit -m "fix: исправлена ошибка валидации email"
git commit -m "feat: добавлена кнопка экспорта в PDF"
git commit -m "refactor: оптимизирован запрос к базе данных"
Типы: feat, fix, docs, refactor, test, chore.
3. Секреты в репозитории
# ОПАСНО — не коммитить!
SECRET_KEY = "django-insecure-key-123"
API_KEY = "sk_live_51234567890"
# Правильно — через переменные окружения
import os
SECRET_KEY = os.getenv('SECRET_KEY')
API_KEY = os.getenv('API_KEY')
Создай .env и добавь его в .gitignore. Зафиксируй .env.example с заглушками для команды.
echo ".env" >> .gitignore
git add .gitignore
git commit -m "chore: add .env to gitignore"
4. Коммитить всё подряд без .gitignore
# Плохо: в коммит попадают node_modules, .DS_Store, .env
git add .
# .gitignore для Python/Django проекта
*.pyc
__pycache__/
.env
.venv/
db.sqlite3
media/
.DS_Store
.vscode/
.pytest_cache/
Всегда проверяй git status и git diff перед коммитом.
5. Push без предварительного pull
# Ошибка: коллега уже пушил, вы получаете rejected
git push origin main
# ERROR: Updates were rejected
# Правильно
git pull --rebase origin main
git push origin main
6. Force push в общую ветку
# ОПАСНО: перезаписывает историю у всех
git push --force origin main
# Безопасная альтернатива (только если очень нужно)
git push --force-with-lease origin main
# Откажется, если кто-то уже пушил после вашего последнего pull
Force push допустим только в личные feature-ветки.
7. Огромные коммиты и сломанный код
Проблема: 3 дня работы в одном коммите "done" — невозможно сделать code review и откатить конкретное изменение.
# Хорошо: 1 коммит = 1 логическое изменение
git add auth/login.py
git commit -m "feat: добавлена форма логина"
git add auth/validators.py
git commit -m "feat: валидаторы email и пароля"
Перед коммитом убедись, что код работает: запусти тесты (pytest) и проверь python manage.py check.
Чек-лист перед push
git status— проверил что добавляю.envи секреты не в коммите- Commit message осмысленное
git pullвыполнен передgit push- Работаю в правильной ветке (не
main) - Тесты проходят
💬 Комментарии (0)
Комментариев пока нет
Станьте первым, кто поделится мнением об этой статье!