Zunächst einige Hintergrundinformationen. Wir sind dabei, alle unsere Projektteams auf die Verwendung von Git umzustellen und die Richtlinien für die Organisation der Repositorys festzulegen, damit bestimmte Filialen auch auf ihre kontinuierliche Integration und Integration hin überwacht werden können automatische Bereitstellung auf den Testservern. Derzeit werden zwei Modelle entwickelt:
Stark beeinflusst durch den Artikel von nvie.com zur erfolgreichen Verzweigung, wobei der Hauptzweig den stabilsten Code darstellt, ein Entwicklungszweig für den aktuellen Code und ein Integrationszweig für Code, der für QA-Tests bereit ist.
Ein alternatives Modell, bei dem der Hauptzweig den neuesten Entwicklungscode darstellt, ein Integrationszweig für Code, der für QA-Tests bereit ist, und ein Produktionszweig für den stabilen Code, der für die Bereitstellung bereit ist.
An diesem Punkt ist es teilweise eine Frage der Semantik in Bezug auf das, was der Hauptzweig darstellt, aber ist es eine gute Praxis, die Hauptzweig aktiv weiterzuentwickeln, oder ist es nicht wirklich so relevant?
Antworten:
Das einzige wirkliche definierende Merkmal des
master
Zweigs ist, dass es für einige Operationen die Standardeinstellung ist. Außerdem haben Filialnamen nur innerhalb eines bestimmten Repositorys eine Bedeutung. Ichmaster
könntedevelopment
zum Beispiel auf Ihre verweisen . Einemaster
Verzweigung ist auch nicht erforderlich. Wenn also Unklarheiten darüber bestehen, welche Verzweigung es sein soll, rate ich normalerweise, sie ganz wegzulassen.Meiner Meinung nach ist es jedoch am besten, wenn Sie die Standardeinstellung für Push-to-Vorgänge verwenden. Die meisten Online-Tutorials, die Ihre Entwickler lesen, gehen davon aus. Es ist also sehr sinnvoll, die
master
Branche zu haben, die am häufigsten angesteuert wird. Einige Leute denken, dass es die makellose Kopie ist, die für Entwickler unantastbar ist, außer nach strengster Prüfung, aber wenn man es auf diese Weise verwendet, werden viele der hilfreichen Standardeinstellungen entfernt, die git bereitstellt. Wenn Sie einen solchen unberührten Zweig haben möchten, würde ich ihn in ein völlig separates Repository stellen, in das nur einige Leute schreiben können.quelle
Nein, es ist nicht ratsam, auch nicht am Anfang, bevor Sie zur Qualitätssicherung gegangen sind. Als Best Practice sollte das Entwicklungsmuster von Anfang bis Ende konsistent sein. Ihr Master-Zweig sollte zunächst leer sein, Sie sollten Ihren Entwicklungszweig abzweigen und mit dem Hinzufügen von Dateien beginnen, mit Ihrem Integrationszweig zusammenführen und anschließend mit Ihrem Master-Zweig verbinden.
Während sich während der Entwicklung niemand darum kümmert, dass der Master-Zweig nicht gebaut wird, neigt er früh zu schlechten Gewohnheiten. Der Master sollte immer erstellen, und für wichtige Feature-Releases wäre es auch keine schlechte Idee, Zweige mit wichtigen Builds zu archivieren, damit stabile Release-Points bei Bedarf wiederhergestellt werden können.
quelle