Git і github робота з pull requests, механічний світ

Якщо у Вас є цікавий проект на Github, рано чи пізно інші користувачі захочуть допомогти Вам у його розвитку. Спільна робота на github реалізована досить просто: людина Форкал Ваш репозиторій, вносить свої зміни і посилає Pull Request - запит на внесення своїх змін в основний репозиторій (Ваш). Що після цього відбувається, я і хочу описати.

злиття правок

Злиття робиться в git. веб-інтерфейсу для цього не передбачено 🙂 Я покажу на прикладі злиття правок до сховища nodejs-docs-rus. Спочатку треба переключитися в основну гілку (зберігши зміни в stash, якщо потрібно) і створити віддалений джерело:

Тепер репозиторій Locke23rus у нас підключений в якості віддаленого джерела. Викачаємо його вміст:

Гілки віддаленого сховища будуть показані у нас в git branch -a. Робимо злиття нашої основної гілки і основної гілки Locke23rus:

І відправляємо дані на сервер Github:

Після цього pull request на сайті повинен автоматично закритися. Якщо цього не відбулося, для закриття є спеціальна кнопка.

Другий варіант - хтось надсилає патч замість pull request'а. У мене цим «кимось» був egorich239. З патчем все теж нескладно.

По-перше, щоб пропатчити файл в Windows сам патч необхідно перезберегти з переносами рядків, характерними для Windows (інакше утиліта patch буде вилітати). Ще одне: патч швидше за все створювався для файлу який був до злиття інших правок, тому просто поверх змін Locke23rus він не встане. Дістаємо з репозиторію версію до злиття:

Тепер у нас репозиторій вказує не на самий останній комит в основний гілці. Ми створимо для правок egorich'а нову гілку:

І тепер уже спокійно накладаємо патч на вихідний файл:

В результаті вийде така структура сховища:

Верхня гілка - накладений патч від egorich, середня - master, в яку вже залиті правки Locke23rus. Тепер можна перемикатися в основну гілку і зливати туди правки egorich:

Посилання по темі