Github

Last updated 2 months ago

Совместная работа над проектом github-репозитории проекта

Модель совместной разработки

Команда drupal.ru использует модель совместной разработки «Fork + Pull», в которой любой человек может сделать клон (fork, форк, копия) репозитория и сливать изменения в свой личный форк без необходимости иметь доступ к оригинальному репозиторию. Эта модель уменьшает количество телодвижений для новых контрибьюторов и популярна для open source проектов, так как позволяет людям работать независимо, без единого координирования.

Локальная копия репозитория

На странице репозитория https://github.com/DrupalRu/drupal.ru/ нужно нажать кнопку «Fork» для того, чтобы создать форк.

На странице клона репозитория нужно нажать кнопку «Fork» и скопировать URL-адрес форка. Чтобы «стянуть» копию на свой компьютер необходимо ввести команду git clone и указать адрес своего форка:

git clone git@github.com:<user>/drupal.ru.git

Тестирование изменений, сделанных другим пользователем

Подключаем удаленный форк-репозиторий автора запроса на включение (pull request, PR, ПР, пулреквест)

git remote add <user> git@github.com:<user>/drupal.ru.git

Получаем (извлекаем) всю информацию, которая есть в форк-репозитории автора запроса на включение

git fetch <user>

Делаем чекаут ветки, которая содержит изменения, отправленные в pull request

git checkout -b <branch> <user>/<branch>

Например, чтобы протестировать изменения, которые сделаны пользователем avakorin в ветке issue-1200, нужно:

git remote add avakorin git@github.com:avakorin/drupal.ru.git
git fetch avakorin
git checkout -b issue-1200 avakorin/issue-1200

Отправка коммита в pull request другого человека

Подключаем удаленный форк-репозиторий автора запроса на включение

git remote add <user> git@github.com:<user>/drupal.ru.git

Получаем (извлекаем) всю информацию, которая есть в форк-репозитории автора запроса на включение

git fetch <user>

Делаем чекаут ветки, которая содержит изменения, отправленные в pull request

git checkout -b <branch> <user>/<branch>

Вносим свои изменения в код, делаем коммит, затем отправляем изменения в исходную удаленную (remote) ветку форка автора pull request.

git push <user> <branch>

Например, чтобы отправить свои изменения в пулреквест, сделанный на основе ветки issue-1158 форк-репозитория пользователя itcrowd72, нужно:

git remote add itcrowd72 git@github.com:itcrowd72/drupal.ru.git
git fetch itcrowd72
git checkout -b issue-1158 itcrowd72/issue-1158
# вносим изменения в код
git commit -m "#1158: <пояснительный текст для коммита>"
git push itcrowd72 issue-1158

Отправка изменений в чужой пулреквест возможна только после включения автором форк-репозитория чекбокса «Allow edits from maintainers» . Подробнее по ссылке: https://help.github.com/articles/allowing-changes-to-a-pull-request-branch-created-from-a-fork/