Richtiges Git-Workflow-Schema mit mehreren Entwicklern, die an derselben Aufgabe arbeiten

Ich bin ein Teamleiter in unserer Webentwicklungsfirma und möchte den Git-Workflow in unserem Team implementieren. Beim Lesen von Dokumentationen und Artikeln habe ich die folgende Struktur für gut befunden:

Wir haben ein Repository in einem Bitbucket.Meister Die Verzweigung enthält nur stabilen Code. Jeder Entwickler muss seinen eigenen Zweig erstellen und Features / Bugfixes in seinen implementierenbesitzen Ast. Sobald er sich entschieden hat, dass sein Code fertig ist, erstellt er eine schöne Verzweigungshistorie (unter Verwendung von Rebase, Änderung, Cherry-Pick usw.) und schiebt sie an Bitbucket, wo er eine Pull-Anfrage zum Master der Verzweigung erstellt. QA überprüft die Funktionalität und genehmigt sie (oder lehnt sie ab). Anschließend überprüfe ich den Code. Wenn dies in Ordnung ist, füge ich seine Arbeit zum Master zusammen (durch Schnellvorlauf oder erneutes Basieren für einen besseren Commit-Verlauf).

Dieses Schema ist jedoch nur dann sinnvoll, wenn ein einzelner Entwickler an einer Zweigstelle arbeitet. In unserem Fall haben wir fast immer zwei Entwickler für eine Branche, da an einem Entwickler gearbeitet wirdserverseitig (PHP) und eine andere -clientseitig (HTML / CSS / JS). Wie sollten diese beiden auf eine Weise zusammenarbeiten, dass die Commit-Historie im Master sauber bleibt?

Server dev erstellt eine grundlegende Struktur von HTML-Dateien und Client dev muss diese Struktur erhalten. Logisch wäre, dass der Server-Entwickler eine Verzweigung erstellt und der Client-Entwickler eine eigene Verzweigung basierend auf der Server-Entwickler-Verzweigung. Dies bedeutet jedoch, dass der Server-Entwickler dies tun mussveröffentlichen seine Niederlassung in Bitbucket, die es schaffen wirdes ist ihm unmöglich, Commits zurückzuziehen oder zu ändern, die bereits veröffentlicht sind.

Eine andere Möglichkeit besteht darin, zu warten, bis der Server-Entwickler seine Arbeit beendet hat, einen Zweig mit einer netten Commit-Historie veröffentlicht und dies vergisst, und erst dann, wenn der Client-Entwickler mit der Arbeit in diesem Zweig beginnt. Dies führt jedoch zu Verzögerungen, was noch schlimmer ist.

Wie gehen Sie mit einer solchen Zusammenarbeit in Ihren Workflows um?

Antworten auf die Frage(7)

Ihre Antwort auf die Frage