Основное различие между рабочими процессами Gerrit и GitHub заключается в том, как моделируются изменения.
В Gerrit каждый коммит - это изменение, которое стоит само по себе. Хотя Gerrit покажет вам взаимосвязи между коммитами, обзоры выполняются на основе коммитов. Команды, которые умеют разбивать большие изменения на маленькие, автономные коммиты, скорее всего, будут иметь больше успеха с Герритом. Однако, поскольку модель Геррита включает в себя последовательные ревизии определенного коммита, она поощряет рабочие процессы Git, к которым многие разработчики не привыкли, такие как внесение изменений в более ранний коммит и повторное его выдвижение или объединение растущего набора коммитов из тематической ветви в один совершить.
В Github запрос на выборку моделирует отношения между двумя ветвями. Ожидаемый рабочий процесс на Github - зафиксировать одно или несколько изменений в ветке темы (часто в развилке репозитория, но не обязательно) и создать запрос на извлечение между этой веткой и веткой «upstream». В этом случае проверяется набор коммитов, который продолжает расти по мере продолжения обзора. Результатом является набор изменений, которые затем можно объединить атомарно, когда они будут завершены. Запросы извлечения могут быть эффективными при отслеживании изменений с большей областью действия, которая может быть реализована в течение нескольких коммитов. Запросы на извлечение также поддерживают рабочие процессы SCM, к которым привыкло больше разработчиков, например, ответ на комментарий к отзыву путем отправки последующего коммита в той же ветке.
Большим преимуществом в пользу Github является количество разработчиков, знакомых с ним, по сравнению с Gerrit. Gerrit может быть популярен среди опытных пользователей Git, но его использование без трения требует среднего или продвинутого знания git, а также терпимости к крутой кривой обучения.
Преимущество Геррита в более глубоких отношениях с Git. Pull-запросы Github достаточно далеки от стандартной модели данных Git, поэтому для создания запросов Pull необходимо использовать веб-интерфейс Github или его собственный API. Интерфейс Gerrit для создания и обновления изменений - это сам протокол git.