Jon Purdy hat die richtige Idee. git flowerleichtert 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-- gitPerspektive. Betrachten Sie im gitFolgenden:
master--...............-.....-..............-
\ / / /
---develop---------............../
\ /
--feature---
Oben verzweigen Sie masterzu develop(mit gekennzeichnet \) und developzu einem featureZweig. 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 developabgezweigt von master. Der in entdeckte Fehler masterwurde behoben, indem von verzweigt master, behoben und wieder zusammengeführt wurde master. Wir haben dann verschmolzen masterin developund dann developinfeature2 , die den neuen Code aus gewalztem hotfixin diesen Zweigen.
Wenn Sie feature2zurück zu zusammenführen develop, wird der Verlauf developmit dem eingeschlossen hotfix. Ebenso developwird es feature2mit dem neuen Code von zusammengeführt master, so dass das Zusammenführen von developwieder masterproblemlos möglich ist, da es auf dem Commit masterzu diesem Zeitpunkt basiert - als ob Sie von masterzu 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.3und 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 hotfixNiederlassung in 1.3-und in 1.2, 1.1und 1.0. Verzweigen Sie nicht von jedem Zweig der Wartungsversion. nicht verschmelzen 1.0in masteroder verschmelzen masterwieder in 1.0. Nehmen Sie den einen hotfixZweig 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 diffist Ihr Freund).
Jetzt wird diese spezifische Änderung überall angewendet. Die Linie ist verzweigt, aber es ist okay. Es ist kein Zufall. 1.3Kennzeichnen 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 flowErweiterung 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.
gitnach jedem erfolgreichen Build automatisch ein Tag hinzuzufügen ? Dies hätte den zusätzlichen Vorteil, dass wirklich klar wird, bei welchengitCommits Build-Probleme oder Testfehler auftreten, da sie nicht markiert sind.