Робота з GitHub

Існує дзеркало репозиторію OpenWrt на GitHub: https://github.com/openwrt/openwrt.

Створіть fork цього репозиторію за допомогою інтерфейсу GitHub, клонуйте його на свій комп’ютер, створіть нову гілку для змін, відправте її назад на GitHub та створіть pull request.

Якщо ви не знаєте, як це зробити — читайте далі.


Створіть обліковий запис на GitHub — це буде публічне сховище з вашим fork'ом OpenWrt і точка для всіх подальших дій.

Встановіть `git` на свій ПК і налаштуйте ім’я користувача та електронну пошту:

git config --global user.name "Ваше ім’я"
git config --global user.email "ваш@email"

Також бажано вказати редактор за замовчуванням:

git config --global core.editor "назва-редактора"

Потім дотримуйтесь інструкцій GitHub щодо Fork A Repo та створення локальної копії fork'у.

Після цього створіть нову гілку:

git checkout -b моя-гілка

Усі наступні коміти будуть додані саме в цю гілку. Для перемикання між гілками використовуйте:

git checkout ім’я-гілки

Після внесення змін додайте файли:

git add -i

Потім зробіть коміт з підписом:

git commit --signoff

Формат повідомлення:

Короткий заголовок
 
Детальний опис змін.
Signed-off-by: Ім’я Прізвище <email@example.com>

Надішліть зміни до свого GitHub-репозиторію:

git push --all

Після цього ви зможете створити Pull Request через веб-інтерфейс GitHub: Creating a pull request.


PR має складатися з логічно завершених змін, а не з десятків “виправлень після рев’ю”.

Коли настане час об’єднати коміти, використовуйте squash.

Перейдіть у директорію проєкту, перевірте доступні гілки:

git branch -a

Перейдіть у гілку, яку потрібно об’єднати:

git checkout ім’я-гілки

Перегляньте лог, щоб порахувати, скільки комітів треба об’єднати:

git log

Скиньте останні `X` комітів:

git reset HEAD~X

Потім знову додайте зміни:

git add -i

І зробіть один новий коміт:

git commit --signoff

Надішліть нову версію PR:

git push -f

GitHub оновить PR автоматично.


Інтерактивна версія squash — більш гнучка:

git rebase -i HEAD~X

Ви зможете обрати, які коміти об’єднати, перейменувати або видалити.


GitHub не дозволить повторно відкрити PR, якщо після його закриття ви:

- зробили force push у гілку; - або видалили гілку.

Але якщо повернути гілку до того самого commit hash, який був у момент закриття PR — ви зможете відкрити його знову.

Приклад:

# Дізнайтесь hash коміту X, на якому було закрито PR
git log -1 testbranch
 
# Перейдіть до цього коміту
git checkout xxxxxxxxxx
 
# Видаліть стару гілку
git branch -D testbranch
 
# Створіть нову з таким самим іменем
git checkout -b testbranch
 
# Відправте на GitHub
git push -f origin testbranch

Після цього кнопка “Reopen” стане доступною — але лише якщо ви самі закривали PR. Якщо це зробив адміністратор, зверніться до нього.

Після відкриття PR можна оновити його новими змінами:

git checkout новий-хеш
git branch -D testbranch
git checkout -b testbranch
git push -f origin testbranch
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
  • Last modified: 2025/05/25 18:18
  • by vazaz