2016-12-14 8 views
2

Ich werde meine Entwicklung Zweig zu Master zusammenführen und ich frage mich, ob ich die Commits aus Entwicklung vor dem Zusammenführen zu master quetschen sollte.Gitflow: Squash Commits bei der Zusammenführung von entwickeln zu Master

Allgemeine Dokumentationen über Git Flow enthalten Zahlen wie diese aus der atlassian Seite.

enter image description here

In diesen Figuren erscheinen nur einzelne Commits auf Master statt alle zu entwickeln gemacht Commits. Eigentlich mag ich die Idee, einen Master-Zweig zu haben, der nur commits freigibt.

Was ist deine Meinung dazu? Verschmelzen Sie alle Commits auf Entwickeln zu Master? Oder quetschen Sie die Commits, bevor Sie sich dem Master verschreiben?

Antwort

2

Meiner Meinung nach, und denken Sie daran, dies ist nur eine Meinung, und Sie werden wahrscheinlich verschiedene Antworten erhalten, sollten Sie nicht die Commits quetschen, wenn Sie in Master aus dem entwickeln Zweig verzweigen. Dies würde einen großen Teil der Geschichte der vorgenommenen Änderungen verlieren. Zum Beispiel werden fast alle Commits, die ich mache, mit einer Ausgabenummer versehen, so dass es eine vollständige Rückverfolgbarkeit über den Git-Verlauf in die Probleme gibt, die ausgelöst wurden, und warum Änderungen vorgenommen wurden.

Mehr zu dem Punkt, Sie sollten nicht direkt von entwickeln in Master zusammengeführt werden. Angenommen, Sie folgen dem Git-Flow, dann sollte dieser Übergang über einen Release-Zweig erfolgen.

Wenn Sie gefragt hätten, ob bei einem Feature oder Hotfix-Zweig die Commits gequetscht werden sollten, wäre das eine andere Antwort. In diesen Fällen dürfte der Zweig klein genug sein, um nur einen einzigen Commit zu rechtfertigen, daher setze ich in diesen Situationen fast immer Rebases und zerquetsche Commits in einen einzigen, bevor ich in den Zielzweig mische.

+0

Ich zweitens: IMHO Geschichte ist äußerst wertvolle Informationen. Es kann einem Entwickler erklären, was passiert ist und warum. Bewahre es so gut du kannst. –

+0

Aber die ganze Geschichte ist auf dem Zweig zu sehen, der immer bleiben wird. Der Master-Zweig ist eine Aufzeichnung von Releases und daher sollte jedes Commit eine zerdrückte Menge von Änderungen darstellen. –

0

Der Master-Zweig wird verwendet, um einen Datensatz von Releases zu verwalten, daher sollte jeder Commit eine zerdrückte Menge von Änderungen aus den Entwicklungszweigen darstellen, aus denen der Release-Build besteht.

Durch das Komprimieren der Commits ist es viel einfacher zu sehen, welche Änderungen in eine Version eingetreten sind, und bei Bedarf Hotfix-Zweige aus einem Release-Commit zu erstellen. Kennzeichnen Sie jedes gequetschte Commit mit der Release-Versionsnummer.

Verwandte Themen