Code
Search
K

GitLab

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

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

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

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

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

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

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

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

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