Ошибка 1 — Commit без Push (изменения не видны на GitHub)
Диагностика
В нижней панели PyCharm видно стрелку вверх со счётчиком (например, «↑1») — это количество коммитов, ожидающих push.
Решение
- В PyCharm: меню Git → Push (или Ctrl+Shift+K)
- В терминале:
git push origin <branch-name>
Ошибка 2 — 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