Ich arbeite gerade an einem Projekt und wir haben den Quellcode in einem privaten Repository auf Github, mit jedem von uns als Mitarbeiter.
Worüber wir uns nicht im Klaren sind, ist, wie wir jede unserer Arbeiten trennen sollen.
Ich denke, wir müssen Folgendes tun:
- Jeder von uns muss das Repository aufteilen
- Wenn wir bereit sind, unseren Code zu pushen, senden wir eine Pull-Anfrage an das Repo des Projektleiters, der dies gleichzeitig als Gelegenheit für eine Codeüberprüfung nutzen kann
Wenn es um private Repositories geht, ist dies das, wofür das Gabeln verwendet werden soll, oder ist die Situation überkompliziert?
Antworten:
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.
quelle
Dies würde funktionieren, oder Sie könnten eine Verzweigungsmethode verwenden, bei der jeder Beitrag seine eigenen Zweige hat, die, wenn das Team zustimmt, mit dem Master zusammengeführt werden.
quelle