Jon Purdy hat die richtige Idee. git flow
erleichtert auch die eigentliche Verwaltung dieser Filialen und die Filialverwaltung ist ein Argument für den Umzug git
.
Beginnen sie mit einem grundlegenden Überblick über beginnen git
, da man aus dem kommt svn
-zu-- git
Perspektive. Betrachten Sie im git
Folgenden:
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
Oben verzweigen Sie master
zu develop
(mit gekennzeichnet \
) und develop
zu einem feature
Zweig. Wir führen diese Zweige wieder zusammen (gekennzeichnet durch /
), mit Commits ( -
) entlang eines Zweigs. (Wenn es keine Festschreibung gibt, die Zusammenführung jedoch weit rechts liegt, gibt es .
Indikatoren, die anzeigen, dass -
die nächste Festschreibung die nächste ist.)
Leicht genug. Was ist, wenn wir einen Hotfix in unserer Hauptversion haben?
master--...............-.....-................-...........-.........-
\ / / / \ /| /
\ / / / -hotfix-- V /
---develop---------............../..............-...----
\ / \ V /
--feature--- --feature2...----
Oben develop
abgezweigt von master
. Der in entdeckte Fehler master
wurde behoben, indem von verzweigt master
, behoben und wieder zusammengeführt wurde master
. Wir haben dann verschmolzen master
in develop
und dann develop
infeature2
, die den neuen Code aus gewalztem hotfix
in diesen Zweigen.
Wenn Sie feature2
zurück zu zusammenführen develop
, wird der Verlauf develop
mit dem eingeschlossen hotfix
. Ebenso develop
wird es feature2
mit dem neuen Code von zusammengeführt master
, so dass das Zusammenführen von develop
wieder master
problemlos möglich ist, da es auf dem Commit master
zu diesem Zeitpunkt basiert - als ob Sie von master
zu diesem Zeitpunkt abgezweigt wären .
Also hier ist eine andere Möglichkeit, das zu tun.
master--..........-........-
\ /\ /
---1.0-- --1.1--
Ihre 1.0 Versionen erhalten tagged- 1.0.1
, 1.0.2
, 1.0.3
und so weiter.
Hier ist ein Trick: Sie haben einen Fehler in 1.0 gefunden, der sich auf 1.1, 1.2 und 1.3 auswirkt. Wie geht's?
Sie verzweigen von Ihrem neuesten oder am frühesten gewarteten Release und reparieren es. Dann verschmelzen Sie Ihre neue hotfix
Niederlassung in 1.3
-und in 1.2
, 1.1
und 1.0
. Verzweigen Sie nicht von jedem Zweig der Wartungsversion. nicht verschmelzen 1.0
in master
oder verschmelzen master
wieder in 1.0
. Nehmen Sie den einen hotfix
Zweig und fügen Sie ihn in alle Ihre Versionszweige ein. Wenn es Konflikte gibt, wird es Ihnen sagen; Überprüfen Sie Ihren Code, um sicherzustellen, dass die Änderungen korrekt sind ( git diff
ist Ihr Freund).
Jetzt wird diese spezifische Änderung überall angewendet. Die Linie ist verzweigt, aber es ist okay. Es ist kein Zufall. 1.3
Kennzeichnen Sie den Kopf als 1.3.17, fügen Sie ihn in jedes Feature ein, von dem aus verzweigt wird 1.3
, und fahren Sie fort.
Die git flow
Erweiterung unterstützt Sie bei der Verwaltung dieser Wartungs-, Feature- und Hotfix-Zweige. Sobald Sie den Workflow heruntergefahren haben, ist dies trivial und macht der Quellcodeverwaltung eine Menge Ärger.
Ich habe dies in Programmierteams gesehen, aber ich habe als Programmierer selbst nicht so intensiv gearbeitet, sodass ich mich immer noch um den täglichen Arbeitsablauf kümmere.
git
nach jedem erfolgreichen Build automatisch ein Tag hinzuzufügen ? Dies hätte den zusätzlichen Vorteil, dass wirklich klar wird, bei welchengit
Commits Build-Probleme oder Testfehler auftreten, da sie nicht markiert sind.