Der Hauptunterschied zwischen Gerrits und GitHubs Workflows besteht darin, wie Änderungen modelliert werden.
Bei Gerrit ist jedes Commit eine Veränderung, die für sich steht. Obwohl Gerrit Ihnen die Beziehungen zwischen Commits zeigt, werden Überprüfungen auf Commit-Basis durchgeführt. Teams, die große Veränderungen gut in kleine, in sich geschlossene Commits aufteilen können, werden mit Gerrit wahrscheinlich mehr Erfolg haben. Da Gerrits Modell jedoch sukzessive Überarbeitungen eines bestimmten Commits enthält, werden Git-Workflows unterstützt, an die viele Entwickler nicht gewöhnt sind, z verpflichten.
In Github modelliert eine Pull-Anfrage eine Beziehung zwischen zwei Zweigen. Der erwartete Arbeitsablauf bei Github besteht darin, eine oder mehrere Änderungen in einen Zweig eines Themas zu übertragen (häufig in einem Zweig des Repositorys, aber nicht unbedingt) und eine Pull-Anforderung zwischen diesem Zweig und dem Zweig "Upstream" zu erstellen. In diesem Fall wird eine Reihe von Commits überprüft, die mit fortschreitender Überprüfung weiter zunehmen. Das Ergebnis ist eine Reihe von Änderungen, die nach Abschluss der Änderungen atomar zusammengeführt werden können. Pull-Anforderungen können Änderungen mit einem größeren Bereich, der über mehrere Commits implementiert werden kann, effektiv nachverfolgen. Pull-Anforderungen unterstützen auch SCM-Workflows, an die sich immer mehr Entwickler gewöhnt haben, z. B. die Beantwortung eines Überprüfungskommentars durch Senden eines Follow-up-Commits in derselben Zweigstelle.
Ein großer Vorteil für Github ist die Anzahl der Entwickler, die im Vergleich zu Gerrit damit vertraut sind. Gerrit kann bei Git-Power-Usern beliebt sein, aber die reibungslose Verwendung erfordert mittlere oder fortgeschrittene Git-Kenntnisse und die Toleranz einer steilen Lernkurve.
Gerrits Vorteil ist eine tiefere Beziehung zu Git. Github Pull Requests sind weit genug vom Standarddatenmodell von Git entfernt, dass man entweder die Web-Benutzeroberfläche von Github oder die proprietäre API verwenden muss, um Pull Requests zu erstellen. Gerrits Schnittstelle zum Erstellen und Aktualisieren von Änderungen ist das Git-Protokoll selbst.