В современной практике разработки программного обеспечения наиболее популярны две модели совместной работы с Git-репозиториями:
Fork + Pull
Модель Fork + Pull
позволяет любому пользователю создать личную копию репозитория (fork
), внести в неё изменения и затем предложить их слияние владельцу (мэйнтэйнеру
) оригинального git-репозитория через механизм pull request
(PR в GitHub и Gite, Merge Request
(MR) в Gitlab).
Особенности:
- Не требует доступа на запись в основной репозиторий.
- Упрощает участие новых
контрибьюторов
(тех, кто вносит изменения). - Идеально подходит для open source проектов.
- Позволяет работать независимо, без постоянной координации с основной командой.
Общий репозиторий
Модель общего репозитория (Shared Repository
) используется внутри команд и организаций, чаще всего при работе над закрытыми проектами. Все участники имеют доступ на запись в один и тот же репозиторий.
- Изоляция изменений обеспечивается через тематические ветки (
topic branches
). - Требует больше доверия и внутренней координации.
- Хорошо подходит для малых и средних команд.
- Нередко сочетается с обязательными код-ревью через pull request’ы.
Роль Pull Request’ов
Pull request’ы особенно важны в модели «Fork + Pull» как способ взаимодействия с основной командой проекта. Однако и в модели общего репозитория они активно применяются — для обсуждения, рецензирования и контроля качества кода перед слиянием изменений в основную ветку.