💻 Примеры — PR в PyCharm

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

⚡ Обновление upstream (терминал)

git remote add upstream https://github.com/OWNER/REPO.git
git fetch upstream
git checkout master
git merge upstream/master
git push origin master
Этот урок посвящён UI-интерфейсу PyCharm. Шаги работы с IDE описаны текстово — PyCharm показывает те же операции, что и терминал, но через кнопки и панели.

Пример 1 — Клонировать репозиторий через Get from VCS

Шаги в PyCharm

  1. Открыть PyCharm. На стартовом экране нажать Get from Version Control.
  2. В выпадающем меню сверху выбрать Git (обычно выбрано по умолчанию).
  3. В поле URL вставить ссылку на репозиторий:
    https://github.com/YOUR_USERNAME/learning_git.git
  4. В поле Directory выбрать папку, куда будет склонирован репозиторий.
  5. Нажать Clone.
  6. PyCharm начнёт скачивать репозиторий. По окончании предложит открыть проект — нажать Open.

Эквивалент в терминале

git clone https://github.com/YOUR_USERNAME/learning_git.git
cd learning_git

Пример 2 — Добавить файл, commit и push через плагин Git

Подготовка файла

В контексте лекции — добавляем файл monitoring.sh (скрипт системного отчёта из урока 24).

# monitoring.sh

#!/bin/bash
os_version=$(cat /etc/os-release | grep "PRETTY_NAME" | cut -d '"' -f 2)
current_date=$(date "+%Y-%m-%d")
current_time=$(date "+%H:%M:%S")
uptime_info=$(uptime -p)
system_load=$(uptime | awk -F'[a-z]:' '{ print $2 }')
disk_usage=$(df / | awk '{print $5}' | sed 's/%//')
top_processes=$(ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 6)
process_count=$(ps -ef | wc -l)
user_count=$(who | wc -l)

echo "System Report"
echo "OS: $os_version"
echo "Date: $current_date Time: $current_time"
echo "Uptime: $uptime_info"
echo "Load: $system_load"
echo "Disk: $disk_usage%"
echo "Top processes:"
echo "$top_processes"
echo "Processes: $process_count | Users: $user_count"

Шаги commit через плагин PyCharm

  1. После создания файла PyCharm может показать диалог «Add file to Git?» — нажать Add.
  2. Нажать кнопку Commit в левой вертикальной панели (значок галочки) или Ctrl+K.
  3. В панели Commit слева — список изменённых/новых файлов. Убедиться, что monitoring.sh отмечен галочкой.
  4. В поле Commit Message (справа) написать сообщение: например, Add monitoring.sh — system report script.
  5. Нажать Commit and Push (или сначала Commit, потом отдельно Push через Ctrl+Shift+K).
  6. В диалоге Push подтвердить отправку в нужную ветку — нажать Push.

Проверка

Открыть ваш репозиторий на GitHub — файл monitoring.sh должен появиться в списке файлов в выбранной ветке.

Эквивалент в терминале

git add monitoring.sh
git commit -m "Add monitoring.sh — system report script"
git push origin master

Пример 3 — Создание Pull Request через GitHub

Шаги в GitHub UI

  1. Открыть ваш форкнутый репозиторий на GitHub в браузере.
  2. Перейти на вкладку Pull requests.
  3. Нажать New pull request.
  4. Проверить направление:
    base repository: оригинальный репозиторий (например, it-career-hub/learning_git)
    head repository: ваш форк (например, YOUR_USERNAME/learning_git)
  5. Выбрать ветки: base — master/main, compare — ваша рабочая ветка.
  6. Нажать Create pull request.
  7. В поле описания PR написать основание — номер Issue: #42 (GitHub автоматически покажет название issue).
  8. Нажать Create pull request ещё раз для подтверждения.

После проверки — Rebase and merge

Владелец репозитория проверяет PR, обсуждает в комментариях при необходимости, затем нажимает:

  1. Rebase and merge (или другой тип merge на выбор).
  2. Подтвердить merge.

PR считается закрытым. Форкнутый репозиторий теперь отстаёт от оригинала на эти коммиты.

Пример 4 — Обновление форка через upstream (терминал)

После принятия PR нужно синхронизировать форк с оригинальным репозиторием. Выполняется в терминале (встроенном в PyCharm или отдельном).

# Обновление форка learning_git

# Шаг 1: Добавить upstream (один раз)
git remote add upstream https://github.com/it-career-hub/learning_git.git

# Шаг 2: Проверить, что upstream добавлен
git remote -v
# origin    https://github.com/YOUR_USERNAME/learning_git.git (fetch)
# origin    https://github.com/YOUR_USERNAME/learning_git.git (push)
# upstream  https://github.com/it-career-hub/learning_git.git (fetch)
# upstream  https://github.com/it-career-hub/learning_git.git (push)

# Шаг 3: Получить изменения из оригинала
git fetch upstream

# Шаг 4: Переключиться на master и применить изменения
git checkout master
git merge upstream/master

# Шаг 5: Отправить обновлённую ветку в ваш форк
git push origin master

Как открыть терминал в PyCharm

Нижняя панель → вкладка Terminal (или Alt+F12). Терминал откроется в директории проекта, что удобно для git-команд.