Das Klonen des Repos auf den lokalen Computer des Entwicklers ist bereits eine Art Forking. Wenn jeder Entwickler das Repo auf GitHub gibt, dient dies nur dazu, seinen aktuellen Arbeitsstand zu veröffentlichen.
Dies kann sinnvoll sein, wenn es ein zentrales Master-Repo gibt und viele Mitwirkende keinen direkten Zugriff auf dieses Repo haben. Dies eignet sich hervorragend für Open-Source-Projekte, bei denen jeder einen Pull-Request einreichen und ausgeben kann, der dann von einer Gruppe von Kernbetreuern überprüft und zusammengeführt wird. Die Verwendung mehrerer Repos erzwingt einen Pull-Request-basierten Workflow.
In einem kleinen, vertrauenswürdigen Team ist dies nicht erforderlich. Um zu verhindern, dass sich verschiedene Personen gegenseitig behindern, kann eine Strategie wie der Git Flow angewendet werden: Jedes kleine Feature wird in einem separaten Feature-Zweig implementiert. Wenn die Funktion abgeschlossen ist, wird sie in der Hauptniederlassung zusammengeführt. Die meisten Teams koppeln dies mit einer Pull-Anfrage oder einer Codeüberprüfung nach Konvention, sind jedoch vertrauenswürdig genug, um dies gegebenenfalls zu überspringen. Während separate Repos dazu führen würden, dass ein Entwickler seinen aktuellen Status auf seinen gespaltenen, aber für das Team sichtbaren Repos veröffentlicht, würden sie ihre Änderungen in einem einzigen gemeinsamen Repo in einen separaten Feature-Zweig verschieben. In den meisten Workflows wird davon abgeraten, die gesamte Entwicklung auf Master / Trunk durchzuführen.
Der Unterschied besteht letztendlich nur in der Zugriffsverwaltung und nicht so sehr im implementierten Workflow. Sie können mit beiden Setups Pull-Request-basierte Workflows ausführen. Aus der Perspektive des Raw Git gibt es keinen großen Unterschied zwischen einer Verzweigung und einer Verzweigung - beide Ansätze teilen im Wesentlichen den Verlauf des Projekts und ermöglichen das Hinzufügen von Commits, ohne andere Verzweigungen / Verzweigungen zu beeinflussen. In Anbetracht dessen wäre es viel besser, ein einzelnes Repo in einer vertrauenswürdigen, geschlossenen Gruppe zu teilen.