Ich habe über @nvie's Git-Verzweigungsmodell y Gitflow und ich denke, dass dies ein gutes Modell für ein Projekt (Webanwendung) ist, an dem ich gerade arbeite.
Ich bin der Hauptentwickler des Projekts und entwickle in einer lokalen Umgebung (MAMP-ähnlich). Immer wenn ich dem Kunden etwas zeigen möchte, übertrage ich meine Arbeit auf einen zentralen Git-Host. Von dort aus verteile ich es auf einen Server, der mit dem Internet verbunden ist. Dann kann mein Kunde die Änderungen sehen.
Ein zweiter Entwickler hat gerade mit der Arbeit an dem Projekt begonnen. Er entwickelt jeweils einzelne Funktionen und schiebt sie auf den zentralen Git-Host, wenn sie fertig sind. Ich prüfe seine Arbeit, bevor ich sie einsetze.
Derzeit werden alle Übertragungen in der master
Zweig und werden in der einzigen gehosteten Umgebung bereitgestellt. In Zukunft möchte ich eine Produktionsumgebung (für den realen Einsatz), eine Testumgebung (um neue Versionen der Anwendung zu testen, bevor sie veröffentlicht werden) und eine Entwicklungsumgebung (in der ich dem Kunden fertige oder noch in Arbeit befindliche Funktionen zeigen kann) haben. Ich denke, die Produktionsumgebung würde Deploys erhalten von master
, während die Entwicklungsumgebung Deploys von develop
.
Die Fragen, die ich habe, sind folgende:
-
Ich arbeite oft an mehreren Aufgaben gleichzeitig. Wenn ein Teil einer Funktion fertig ist, möchte ich ihn manchmal meinem Kunden zeigen, bevor ich mit der Arbeit an dieser Funktion fortfahre. Soweit ich weiß, wird ein Feature (Zweig) jedoch nur in
develop
wenn es fertig ist und veröffentlicht werden soll. Wie kann ich meinem Kunden (in der Entwicklungsumgebung) Funktionen zeigen, die in Arbeit sind (oder noch nicht für die Veröffentlichung vorgesehen sind)? -
Von welchem Zweig aus soll ich die Testumgebung bereitstellen? Sollte ich manuell den Versionszweig auswählen, oder könnte es einen speziellen Testzweig geben?