2016-10-06 1 views
2

Wir löschen Feature-Zweige, nachdem sie mit dem Master zusammengeführt wurden. Gelegentlich müssen wir einen Patch generieren, der alle Commits eines historischen Zweigs enthält, der nicht mehr existiert.Erzeugen eines Patches, der alle Commits von einem historischen Zweig umfasst und nur den Zweignamen verwendet

Um den Prozess zu vereinfachen, möchte ich ein Skript zur Verfügung stellen, das einen solchen Patch generiert, der nur den historischen Zweignamen als Eingabe benötigt.

(Zweigname kann leicht aus dem Bug-Tracking-System erhalten werden)

Antwort

1

Niederlassungen in git sind einfach eine Textzeile in einer Datei, indem er auf eine Festschreibung. Wenn eine Verzweigung gelöscht wird, gibt es keine Historie außerhalb des Reflogs. Ich würde empfehlen, das Ende Ihrer Versionszweige vor dem Zusammenführen zu markieren. Auf diese Weise können Sie die Liste der Tags durchsuchen, aus der Sie verzweigen können, wenn Sie einen Patch aus dem zuvor veröffentlichten Code erstellen müssen.

git tag -a 1.1 -m "Release 1.1" 
git merge release/1.1 
git branch -d release/1.1 

Dann können Sie Tags mit git tag Liste und später git branch hotfix/1.2 1.1 einen Zweig von dem Tag zu erstellen.

Wenn Sie dies nicht tun möchten, können Sie Folgendes verwenden, um alle Zusammenführungs-Commits in Ihrem Verlauf aufzulisten, die normalerweise den Zweignamen enthalten, der zusammengeführt wurde. Sie könnten dann zum zweiten Elternteil des Merge-Commits gehen, das das letzte Commit Ihres Release-Zweiges ist.

Sie könnten diese Befehle kombinieren und erhalten, was Sie verlangen, aber wie bereits erwähnt, würde ich dringend die Verwendung von Tags für diesen Zweck empfehlen.

Verwandte Themen