📖 Теория — PR в PyCharm

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

⚡ Суть теории

  • Открыть репо: Open (папка) или Get from VCS (клонировать)
  • Commit + Push: Ctrl+K → выбрать файлы → сообщение → «Commit and Push»
  • PR: GitHub Pull Requests → New pull request → форк→оригинал → #issue → Rebase and merge
  • Upstream: git remote add upstream URLgit fetch upstreamgit merge upstream/master

1. Базовый функционал PyCharm

PyCharm — IDE с встроенным git-плагином. При открытии проекта он автоматически обнаруживает репозиторий Git и показывает информацию о ветках, коммитах и изменениях.

Открыть существующий репозиторий

Если репозиторий уже склонирован:

  1. Запустить PyCharm.
  2. Нажать Open.
  3. Выбрать директорию с репозиторием и нажать OK.

PyCharm откроет проект и автоматически активирует git-плагин — в нижней панели появится информация о текущей ветке.

Клонировать репозиторий через PyCharm (Get from VCS)

Если репозиторий ещё не склонирован — можно сделать это прямо из PyCharm:

  1. На стартовом экране нажать Get from Version Control (в некоторых версиях: Get from VCS).
  2. В поле URL вставить ссылку на репозиторий с GitHub (кнопка «Code» → HTTPS).
  3. Выбрать локальную директорию для сохранения.
  4. Нажать Clone.

PyCharm скачает репозиторий и автоматически откроет его как проект.

2. Работа с репозиторием в PyCharm

Разберём функционал плагина Git в PyCharm на примере добавления файла monitoring.sh.

Добавить файл в проект

  1. В панели Project (слева) нажать правой кнопкой на нужную директорию → NewFile.
  2. Ввести имя файла, например monitoring.sh, и нажать OK.
  3. PyCharm спросит: «Add file to Git?» — нажать Add. Это аналог git add monitoring.sh.

Commit через git-плагин

  1. Нажать кнопку Commit в левой панели (или Ctrl+K).
  2. Откроется панель Commit: слева — список изменённых файлов, справа — поле для сообщения коммита.
  3. Убедиться, что нужные файлы отмечены галочкой (аналог git add).
  4. Ввести сообщение коммита в поле «Commit Message».
  5. Нажать Commit (только коммит, без push) или Commit and Push (коммит + отправка в GitHub).
Соответствие кнопок и команд терминала
Плагин Git в PyCharm — это просто удобный интерфейс над стандартными git-командами:
— «Добавить в отслеживание» = git add <file>
— «Commit» = git commit -m "сообщение"
— «Commit and Push» = git commit -m "..." && git push origin <branch>

История коммитов

После коммита можно увидеть историю: вкладка Git (в нижней панели) → Log. Отображаются все коммиты с авторами и временем. Коммиты, которые ещё не запушены, помечены стрелкой вверх.

Push

Если нажали только «Commit», то для отправки: Git (верхнее меню) → Push (или Ctrl+Shift+K). PyCharm выполнит git push origin <текущая_ветка>.

3. Работа с Pull Request

После того как изменения запушены в форкнутый репозиторий, создаём PR через GitHub:

  1. Открыть форкнутый репозиторий на GitHub.
  2. Перейти на вкладку Pull requests.
  3. Нажать New pull request.
  4. Выбрать направление: из форкнутого репозитория в исходный (оригинальный). Убедиться, что в «base repository» стоит оригинальный репо, а в «head repository» — ваш форк.
  5. Добавить основание для открытия PR: обычно это номер Issue. В поле описания написать #НОМЕР_ISSUE — GitHub автоматически свяжет PR с задачей.
  6. Нажать Create pull request.
  7. После обсуждения и проверок владелец исходного репозитория принимает изменения — выбирает Rebase and merge.
Rebase and merge перемещает коммиты из PR поверх основной ветки, создавая линейную историю. Это предпочтительный способ merge на многих проектах.

4. Обновление форкнутого репозитория через upstream

После того как PR влит в исходный репозиторий, форкнутый репозиторий отстаёт от оригинала. Нужно синхронизировать его. Для удобства используем терминал.

Треугольник: original → fork → local
Схема работы: оригинальный репо (upstream) → ваш форк (origin) → локальная копия. При обновлении нужно: получить изменения из upstream → применить к локальной копии → отправить в fork.

Шаг 1 — Добавить upstream

Выполняется один раз:

git remote add upstream <URL_оригинального_репозитория>
# Например:
git remote add upstream https://github.com/it-career-hub/learning_git.git

Шаг 2 — Получить изменения из upstream

git fetch upstream

Команда скачивает все коммиты из оригинального репозитория в локальные ветки вида upstream/master, но не применяет их к вашим веткам.

Шаг 3 — Обновить локальную ветку

git checkout master
git merge upstream/master

Применяем изменения из upstream/master к вашей локальной ветке master. Если конфликтов нет — merge пройдёт автоматически.

Шаг 4 — Отправить обновлённую ветку в форк

git push origin master

Ваш форк на GitHub теперь синхронизирован с оригинальным репозиторием.

Вместо master может использоваться main или другое имя основной ветки — проверьте в настройках репозитория.