In den allgemein als Git-Flow- Modell bezeichneten Hotfixes werden hotfix-*
kleine Integrationskorrekturen in den jeweiligen Zweig gestellt, bevor die Veröffentlichung in den release-*
Zweig gestellt wird. Allgemeine Bugfixes aus der Vorgängerversion scheinen keinen Platz zu haben.
Wo sollen sie erscheinen? Sollen sie sich in einer eigenen bug-*
Filiale befinden, von der sie sich abzweigen develop
(genau wie feature
Filialen)?
feature-*
Filialen zu sein? Kann eine Behebung eines fehlerhaften Verhaltens als Merkmal angesehen werden?master
,develop
,release-*
oderhotfix-*
ist ein Feature Zweig, so dass Sie einen anderen Präfix für Fehler eines beliebiges Präfix Sie wie und verwenden kann. Was ist außerdem der Unterschied zwischen einem fehlerhaften Verhalten, das wie angegeben funktioniert, und einem fehlerhaften Verhalten, das von der Spezifikation abweicht? In beiden Fällen handelt es sich um ein fehlerhaftes Verhalten, aber nur das letzte ist ein Fehler.Antworten:
Die kurze Antwort: Ja, Zweige für Fehlerkorrekturen, die in einer geplanten kommenden Version enthalten sind, sollten sich in Feature-Zweigen befinden. Wie Sie Feature-Zweige oder diese Zweige für Fehlerbehebungen benennen, liegt bei Ihnen und Ihrem Team. Sie sollten jedoch identisch behandelt werden, wenn Sie Gitflow folgen.
Bart van Ingen Schenaus Kommentar bringt einen guten Punkt auf den Punkt.
Gitflow hat fünf Zweigtypen:
master
,develop
, Hotfix Zweige (mit dem Präfixhotfix-
), Release - Zweig (mit dem Präfixrelease-
und verfügen über Niederlassungen Des.master
Unddevelop
Zweige mit langer Laufzeit Zweigen und Sie verpflichten nicht direkt in ihnen die.release-
Zweige sind aus einer Linie zeichnen für ein bestimmtes Release und dann zur Unterstützung von Fehlerkorrekturen zwischen der Identifizierung der nächsten Version und dem Release. Diehotfix-
Zweige sind speziell für kritische Releases außerhalb des Zyklus für die Produktion bestimmt. Diefeature-
Zweige dienen zur Entwicklung individueller Funktionen für einige zukünftige Releases.Von Umgebungen , in denen PRs verwendet werden , und abgesehen von einem einzelnen Entwickler zu einem Feature - Zweig zu begehen, soll nichts direkt in begangen werden
master
,develop
oder einem Release - Zweig. Auf diese Weise wird sichergestellt, dass jede Änderung durch Code überprüft wird, und es wird sichergestellt, dass die Testabdeckung stimmt und die Tests in einer CI-Umgebung bestanden werden, bevor Änderungen vorgenommen werden. Sie haben keine Probleme, Fehlerbehebungen oder Änderungen vor der Veröffentlichung direkt in den Veröffentlichungszweig zu übertragen und diese dann in die Entwicklung und anschließend in die Funktionszweige zu ziehen.In Ihrem speziellen Fall ist eine
release-
Niederlassung kein geeigneter Ort. Die Software wurde bereits veröffentlicht und ist inmaster
. Sobald eine Veröffentlichung in master zusammengeführt und dort markiert wurde, hat der Veröffentlichungszweig für diese bestimmte Veröffentlichung seinen Zweck überlebt und muss nicht mehr existieren. Wenn Sie aktiv an der Bereinigung Ihrer Filialen arbeiten (was meiner Meinung nach jeder tun sollte), ist dies nicht einmal eine Option.Wenn Ihr Fix nicht kritisch ist, scheint auch ein Hotfix-Zweig nicht zu passen. Der Zweck einer Hotfix-Verzweigung besteht darin, kritische Änderungen schnell in die Produktion zu bringen, ohne die laufende Entwicklung zu beeinträchtigen. Diese zu verwenden, sollte eher die Ausnahme als die Norm für ein Entwicklungsteam sein. Im Allgemeinen sollten kritische Hotfixes ein Ausnahmefall sein.
Das einzige, was noch übrig ist, ist ein Feature-Zweig. Beachten Sie, dass der Abschnitt der Seite, auf den in der Frage zu Feature-Zweigen verwiesen wird, sogar besagt, dass Feature-Zweige "manchmal als Topic-Zweige" bezeichnet werden. Wenn Ihre Änderung auf eine bevorstehende Veröffentlichung abzielt und die Kriterien für einen Hotfix nicht erfüllt, sollte sie sich in einem dieser Zweige befinden.
quelle
develop
, nicht gefunden zwischen der Einführung und der Erstellung des Release-Zweigs und / oder dass Ihr Release-Zweig schon lange existiert. Ich glaube jedoch, dass die einzige Wahl ein Cherry-Pick ist (ich würde vorschlagen, eine Fix- und Pull-Anfrage in den Release-Zweig zu stellen, in den Release-Zweig zu mischen und Cherry-Pick über eine Pull-Anfrage in die Entwicklung zu bringen).Wenn es sich um ein einzelnes Commit handelt, führen Sie einfach ein gut identifiziertes Commit durch und platzieren Sie es auf dem Entwicklungszweig. Andernfalls erstellen Sie einen Feature-Zweig.
Es gibt auch einen Kommentar des Git-Flow-Autors, der genau sagt, was Sie fragen: Fehlende Bugfix-Zweige # 24
quelle