Якщо у Вас є цікавий проект на 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: