📝 Git и GitHub

Типичные ошибки новичков в Git

P
Автор
PyLand Team
📅
Опубликовано
06.05.2026
⏱️
Время чтения
2 мин
👁️
Просмотров
372
🌱
Уровень
Начальный

Разбираем 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)

🔐 Войдите в систему, чтобы оставить комментарий
🚪 Войти
💭

Комментариев пока нет

Станьте первым, кто поделится мнением об этой статье!

🔗 Похожие

Похожие статьи

Продолжите изучение с этими материалами

📝

Undo и Revert в GitHub Desktop: исправляем ошибки…

Коммит — не точка невозврата. GitHub Desktop позволяет спокойно пересобрать локальный коммит через Undo или...

📅 16.07.2026 👁️ 360
📝

История, diff и веб-коммиты на GitHub

GitHub позволяет читать историю проекта, открывать diff отдельных коммитов, смотреть изменения конкретного файла и даже...

📅 16.07.2026 👁️ 312
📝

Первый коммит в Git

Первый коммит начинается с создания репозитория, настройки имени автора и выбора файлов, которые действительно нужно...

📅 30.06.2026 👁️ 343
🎓 Продолжить обучение

В каких курсах используется этот материал

Перейдите к курсу, чтобы закрепить материал на практике.

Git & GitHub Desktop: Командная работа без боли Открыть программу курса