Перейти до змісту

Як здати домашнє завдання через Pull Request

Що таке Pull Request

Pull Request (PR) — запит на перегляд змін, які ви зробили у своїй окремій Git-гілці (branch). У цьому курсі Pull Request — це спосіб здачі домашнього завдання.

Загальна схема:

main → створили свою гілку → виконали ДЗ → commit → push → Pull Request → викладач перевірив роботу

Ви не надсилаєте файли викладачу вручну. Ви публікуєте свою гілку на GitHub і створюєте Pull Request. Після цього викладач бачить ваш код, усі зміни (diff) та історію commit-ів прямо на GitHub і може залишити коментар — до всього PR або до конкретного рядка коду.

Це не просто кнопка «здати ДЗ» — це стандартний механізм командної роботи, яким користуються в реальних software-проєктах. Уміння працювати з гілками, commit-ами та Pull Request — окрема практична навичка, яку курс відпрацьовує паралельно з Python (детальніше — GitHub → Огляд).

Перед створенням Pull Request

Переконайтеся, що робота знаходиться саме у вашій гілці — і що ця гілка вже опублікована на GitHub.

Гілка з домашнім завданням зазвичай називається на кшталт:

homework-01

Перевірте, у якій гілці ви зараз перебуваєте:

git branch --show-current

Якщо ще не зробили commit:

git add .
git commit -m "Complete homework 01"

Відправте гілку на GitHub. Якщо це перший push для цієї гілки:

git push -u origin homework-01

При наступних push у ту саму гілку досить:

git push

Гілка має існувати на GitHub

Pull Request створюється між гілками, які GitHub уже бачить. Якщо гілка існує лише на вашому комп'ютері й ви не зробили push — вибрати її на GitHub буде неможливо.

Створення Pull Request крок за кроком

1. Відкрийте вкладку Pull requests

На головній сторінці репозиторію, у якому ви виконували домашнє завдання, натисніть вкладку Pull requests у верхньому меню.

Вкладка Pull requests

2. Натисніть New pull request

Якщо відкритих PR ще немає, GitHub покаже порожній список і зелену кнопку New pull request у правому верхньому куті. Натисніть її.

Кнопка New pull request

3. Розберіться з полями base / compare (і, якщо працюєте через fork, base repository / head repository)

Це найважливіша частина створення Pull Request. GitHub відкриває сторінку Comparing changes із чотирма полями (два репозиторії × дві гілки), якщо ви працюєте через fork — власну копію репозиторію курсу, як описано в Fork і Clone:

base repository: репозиторій викладача     ←  head repository: ваш fork
base: main                                  ←  compare: ВАША_ГІЛКА_З_ДЗ
  • base repository / base — репозиторій і гілка, куди пропонуються зміни. У курсі це завжди репозиторій викладача, гілка main.
  • head repository / compare — репозиторій і гілка, звідки беруться зміни. Це ваш fork і ваша гілка з домашнім завданням, наприклад homework-01.

Якщо ви клонували репозиторій напряму (без fork) — полів base repository/head repository не буде, залишаться тільки base і compare; логіка та сама.

Натисніть на поле compare і в полі пошуку Find a branch знайдіть свою гілку.

Поле compare відкрите, список гілок

4. Виберіть саме ту гілку, де виконано це домашнє завдання

Після вибору GitHub одразу покаже Able to merge (гілки сумісні, конфліктів немає), кількість commit-ів і changed files — файлів, які реально потраплять у Pull Request.

Найпоширеніша помилка

Уважно перевірте, щоб випадково не вийшло base: main і compare: main одночасно — тоді GitHub порівнює main сам із собою і не побачить жодної різниці. Правильно: base: main, compare: ВАША_ГІЛКА_З_ДЗ.

Гілка з домашнім завданням обрана, видно commit і changed files

5. Перегляньте зміни та натисніть Create pull request

Перш ніж натискати кнопку — подивіться на Files changed: чи справді там ті файли, які ви редагували для цього домашнього завдання. Якщо файлів забагато або серед них є чужі — найімовірніше, обрано не ту гілку.

Коли переконались, що все правильно, натисніть зелену кнопку Create pull request.

Огляд diff і кнопка Create pull request

6. Напишіть назву та опис, підтвердіть створення

GitHub відкриє форму Open a pull request із двома полями:

  • Add a title — назва, за якою відразу зрозуміло, яке завдання здається. Хороший приклад: Homework 01 — Python basics або HW 03 — Functions. Погані приклади: homework, done, test.
  • Add a description — короткий опис виконаного. Якщо якусь частину завдання не вдалося завершити — напишіть тут чесно, це допомагає перевірці більше, ніж порожнє поле.

Приклад хорошого опису:

Виконано Homework 03.

Реалізовано:
- роботу з функціями;
- передачу аргументів;
- return;
- декілька додаткових завдань.

Не до кінця зрозумів останнє завдання з *args.

Заповнивши поля, натисніть Create pull request ще раз — тепер уже остаточно.

Поля Title і Description, кнопка Create pull request

7. Готово — Pull Request з'явився у списку

Pull Request створено і отримав номер у репозиторії (наприклад, #35). Він тепер видно у списку Pull requests — саме звідси викладач бачить, що домашнє завдання здано, і може відкрити його на перевірку.

Створений Pull Request у списку

Що відбувається після створення Pull Request

Створення Pull Request не копіює ваш код у main автоматично — це лише пропозиція моя-гілка → main. Викладач переглядає зміни і або приймає роботу, або залишає коментар із проханням щось виправити.

Якщо потрібні виправлення — новий Pull Request створювати не потрібно. Відкрийте ту саму локальну гілку, виправте код, зробіть новий commit і виконайте push:

git add .
git commit -m "Fix homework after review"
git push

GitHub автоматично додасть цей новий commit до вже відкритого Pull Request.

Головне правило

Перед кожним створенням Pull Request перевіряйте:

base    = main                    ← КУДИ пропонуються зміни
compare = ВАША_ГІЛКА_З_ДЗ         ← ЗВІДКИ беруться зміни

Якщо гілка не з'являється у списку compare

Найчастіша причина — гілку ще не відправлено на GitHub.

git branch --show-current   # яка гілка активна зараз
git status                  # чи є незакомічені зміни
git push -u origin НАЗВА_ГІЛКИ

Після цього оновіть сторінку GitHub — гілка має з'явитися в полі compare.

Коротка схема здачі домашнього завдання

Виконав ДЗ
    ↓
git add .  →  git commit  →  git push
    ↓
GitHub → Pull requests → New pull request
    ↓
base: main   compare: моя-гілка-з-дз
    ↓
Перевірив Files changed
    ↓
Title + Description → Create pull request
    ↓
ДЗ доступне викладачу для перевірки

👉 Короткий варіант цього ж процесу — у розділі Здача домашніх робіт. Якщо ще не робили fork і не знаєте, звідки візьметься ваша гілка, — почніть з Fork і Clone.