Beibehaltung eines sauberen Git-Verlaufs bei Verwendung von Gitflow - nicht zusammengeführte Commits bei der Entwicklung

9

Verwendung gitflow, wenn eine Erstellung release-1.0.0Zweig und es sowohl verschmelzenden masterund developwerden beide Zweige haben eine Commit fehlt:

  • masterIch werde das Commit nicht haben, wo release-1.0.0es zusammengeführt wurdedevelop
  • developIch werde das Commit nicht haben, wo release-1.0.0es zusammengeführt wurdemaster

Stattdessen wird nach hotfix-1.0.1erstellt und zusammengeführt master, wenn es verschmolzen wird, um developden, Commits merge wird die vorherige umfassen commit wo release-1.0.0zu verschmolzen wurde master; so wird es aussehen:

User 'john doe' is trying to merge the following commits into 'develop' from 'hotfix-1.1.1'.

* merge release-1.0.0 to master
* merge release-1.1.0 to master
* Fix shopping cart critical bug

Wenn dies verwirrend klingt, können Sie leicht feststellen, dass jeder, den Sie sehen, developnormalerweise ein paar Commits hinter sich hat master(obwohl die Entwicklung theoretisch nur voraus sein sollte, da es sich um den Hauptzweig handelt. Diese Commits sind Zusammenführungen von release-x.x.xbis master).

Wie sollte damit umgegangen werden, um eine saubere Historie aufrechtzuerhalten?

Christopher Francisco
quelle
Bitte definieren Sie "saubere Geschichte".
Jace Browning
3
Willst du eine saubere Geschichte? Verwenden Sie keinen Gitflow. Es verschmutzt per Definition Ihre Geschichte. Überlegen Sie sich stattdessen, was Sie wirklich brauchen, und bauen Sie einen Workflow darauf auf, damit er tatsächlich zu Ihrer Arbeitsweise passt.
FP
1
Die Zusammenführung zum Master ist eine "Kopie", die zum Entwickeln nicht zusammengeführt werden muss. Nehmen Sie Hotfixes aus dem Zweig der vorherigen Version vor, nicht aus dem Master, und führen Sie von dort aus beide zusammen, und Sie werden das Problem nicht haben. Der Master fügt dem Modell nicht viel hinzu, sodass Sie es tatsächlich vollständig löschen können, IMO.
Axl
@axl Ich verstehe, was du meinst, aber ich versuche, gitflow so nah wie möglich an der Dokumentation zu folgen. Ich würde lieber keine Art von "Hackz" machen, denn da Gitflow bereits von vielen, vielen Entwicklern übernommen wird, sollten sie bereits eine Lösung für diese einfache Sache haben
Christopher Francisco
Es gibt verschiedene Diskussionen darüber, wie verschiedene Probleme mit GitFlow auf GitHub und anderen Orten gelöst werden können. Manchmal gibt es einfach keine Silberkugel.
Axl

Antworten:

4

Ich denke, ein guter Ansatz ist es, zu vermeiden, dass zwei "Haupt" -Zweige, Master und Development, überflüssig sind. Es wird hier ausführlich erklärt und cactus-flowvom Autor gebrandmarkt .

Einige Punkte fallen im Gegensatz zum Git-Flow auf:

  • Nur eine Hauptniederlassung
  • Nur Schnellvorlaufzusammenführungen

Für mich ist der letzte wichtig, da ich nach langer Verwendung von git-flow noch nicht gesehen habe, was an Zusammenführungen nützlich ist --no-ff.

Ich versuche, gitflow so nah wie möglich an der Dokumentation zu verfolgen. Ich würde lieber keine Art von "Hackz" machen, denn da Gitflow bereits von vielen, vielen Entwicklern übernommen wird, sollten sie bereits eine Lösung für diese einfache Sache haben

IMHO das ist dein großer Fehler. Es gibt keinen Grund für dich, so viel wie möglich am Git-Flow festzuhalten. Es kann in Tausenden von Projekten verwendet werden, aber das wirkt sich nicht auf Ihre aus, macht es nicht gut.

Git-Flow ist ein guter Ausgangspunkt, aber Sie sollten darüber nachdenken, es an Ihre Tools und Ihren Workflow anzupassen, und nicht umgekehrt.

Sergio Basurco
quelle