🐛 Типичные ошибки — Занятие 25

К оглавлению урока

⚡ Топ-3 ошибки

  1. Commit без push — изменения локально, GitHub их не видит → нажать Push или Commit and Push
  2. PR в неверном направлении — PR открывается из оригинала в форк вместо форк→оригинал
  3. Форк отстаёт от upstream — нет синхронизации → git fetch upstream && git merge upstream/master

Ошибка 1 — Commit без Push (изменения не видны на GitHub)

Нажали только Commit в PyCharm — коммит создан локально, но не отправлен в GitHub. Pull Request нельзя создать из неотправленных изменений.

Диагностика

В нижней панели PyCharm видно стрелку вверх со счётчиком (например, «↑1») — это количество коммитов, ожидающих push.

Решение

  • В PyCharm: меню GitPush (или Ctrl+Shift+K)
  • В терминале: git push origin <branch-name>

Ошибка 2 — PR в неверном направлении

При создании PR на GitHub нужно чётко проверить направление: из форкнутого → в оригинальный. Если перепутать — PR откроется в неверном репозитории.

Правильная настройка

  • base repository: оригинальный репо (например, it-career-hub/learning_git) → ветка master
  • head repository: ваш форк (например, YOUR_USERNAME/learning_git) → рабочая ветка

Если видите «base» и «compare» в рамках одного репозитория — вы не в режиме «cross-fork». Нажмите compare across forks.

Ошибка 3 — Форк отстаёт от оригинала (нет upstream)

Если не настроен upstream, форк не получает обновления из оригинального репозитория. PR может конфликтовать с изменениями других участников.

Диагностика

git remote -v
# Если видите только origin — upstream не настроен

Решение

git remote add upstream https://github.com/OWNER/ORIGINAL-REPO.git
git fetch upstream
git checkout master
git merge upstream/master
git push origin master

Ошибка 4 — Не та ветка при создании PR

Забыли создать рабочую ветку и сделали коммит в master/main. PR из master в master невозможен.

Профилактика

Перед началом работы всегда создавать рабочую ветку:

git checkout -b feature/my-changes
# или в PyCharm: нижняя панель → имя ветки → New Branch

Ошибка 5 — Конфликт при merge upstream/master

Если в оригинальном репо и в вашем форке изменили одни и те же файлы, при git merge upstream/master возникнет конфликт.

Решение

# После возникновения конфликта:
git status   # посмотреть файлы с конфликтами

# Открыть файлы с конфликтами, разрешить вручную (убрать маркеры <<<<<<<, =======, >>>>>>>)

# Зафиксировать разрешение конфликта
git add <resolved-file>
git merge --continue

# Отправить в форк
git push origin master

Ошибка 6 — PyCharm не видит репозиторий Git

PyCharm открыт на папке, которая не является корнем git-репозитория (нет директории .git). Git-плагин не активируется.

Решение

Убедиться, что PyCharm открыт на корневой директории репозитория (той, где находится .git). Проверить через терминал:

ls -la
# Должна быть директория .git