Code
Search…
GitLab
Совместная работа над проектом gitlab-репозитории проекта

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

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

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

На странице репозитория https://gitlab.com/drupal.ru/7/ нужно нажать кнопку «Fork» для того, чтобы создать форк.
На странице клона репозитория нужно нажать кнопку «Clone» и скопировать URL-адрес своего форка. Чтобы «стянуть» копию на свой компьютер необходимо ввести команду git clone и указать адрес своего форка:
1
git clone [email protected]:<user>/<repo>.git
Copied!
Например, я форкнул репозиторий drupal.ru, а затем сменил имя репо на dru7, чтобы в ссылка в моем GitLab-пространстве выглядела как https://gitlab.com/avakorin/dru7. Чтобы «стянуть» мой репо на компьютер, я использую команду:
1
git clone [email protected]:avakorin/dru7.git
Copied!
Затем необходимо создать отсылку на «родительский» репозитарий, чтобы получать обновления:
1
git remote add upstream [email protected]:drupal.ru/7.git
Copied!

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

Подключаем удаленный форк-репозиторий автора запроса на включение (pull request, PR, ПР, пулреквест)
1
git remote add <user> [email protected]:<user>/<repo>.git
Copied!
Получаем (извлекаем) всю информацию, которая есть в форк-репозитории автора запроса на включение
1
git fetch <user>
Copied!
Делаем чекаут ветки, которая содержит изменения, отправленные в pull request
1
git checkout -b <branch> <user>/<branch>
Copied!
Например, чтобы протестировать изменения, которые сделаны пользователем avakorin в ветке issue-1200, нужно:
1
git remote add avakorin [email protected]:avakorin/dru7.git
2
git fetch avakorin
3
git checkout -b issue-1200 avakorin/issue-1200
Copied!

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

Подключаем удаленный форк-репозиторий автора запроса на включение
1
git remote add <user> [email protected]:<user>/<repo>.git
Copied!
Получаем (извлекаем) всю информацию, которая есть в форк-репозитории автора запроса на включение
1
git fetch <user>
Copied!
Делаем чекаут ветки, которая содержит изменения, отправленные в pull request
1
git checkout -b <branch> <user>/<branch>
Copied!
Вносим свои изменения в код, делаем коммит, затем отправляем изменения в исходную удаленную (remote) ветку форка автора pull request.
1
git push <user> <branch>
Copied!
Например, чтобы отправить свои изменения в пулреквест, сделанный на основе ветки issue-1158 форк-репозитория пользователя ivnish, нужно:
1
git remote add ivnish [email protected]:ivnish/drupal.ru.git
2
git fetch ivnish
3
git checkout -b issue-1158 ivnish/issue-1158
4
# вносим изменения в код
5
git commit -m "#1158: <пояснительный текст для коммита>"
6
git push ivnish issue-1158
Copied!
Отправка изменений в чужой пулреквест возможна только после включения автором форк-репозитория чекбокса «Allow edits from maintainers» .
Last modified 1yr ago