2017-11-11 3 views
2

Ich bearbeite den master Zweig in einem Git Repo.Wie markiert man "Release" Commits in Git?

Von Zeit zu Zeit teste ich ein Commit und stelle fest, dass es gut funktioniert. Dann möchte ich vielleicht das letzte dieser Commits als Release markieren.

Es kann mit Verzweigung erfolgen, aber auf diese Weise Ich brauche Zweige zu wechseln, zu fusionieren, wechseln usw.

Gibt es einen einfacheren Weg, um einige master Releases als Release markieren?

+0

Verwenden Sie Tags (leichtgewichtig oder mit Anmerkungen versehen, obwohl im Allgemeinen für Releases ein kommentiertes Tag besser ist, da Sie zusätzliche Release-Daten speichern und/oder GPG-signieren können). – torek

+0

Sie können Tags ohne Umschalten und Zusammenführen erstellen. Wenn Sie über GitHub sprechen, können Sie Releases von einem bestimmten Commit über die Benutzeroberfläche erstellen. – janos

+0

@janos Ich möchte keinen neuen Tag-Namen für jede Version erfinden. Ich möchte, dass sie mit einem stabilen Bezeichner wie dem Zweignamen bezeichnet werden. Ich spreche nicht speziell über GitHub – porton

Antwort

0

Sie könnten beachten, wie in git notes.

Sie markieren kann jeder begehen Sie mit einer „Freigabe“ Notiz möchten, und move that marker (durch Kopieren und Entfernen der alten Noten)

0

Eine weitere Option - neben erwähnt Verwendung git notes ist git tag -a zu verwenden (es schafft eine kommentierte Tag), aber Aliasing, um den gesamten Prozess zu automatisieren.

Der folgende Alias ​​~/.gitconfig hinzugefügt werden:

release = !git tag -a release-$(git tag -l "release-*"|wc -l|sed 's/ //g')-$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) 

Es eine kommentierte Tag in der folgenden Form schaffen wird: werden aufgefordert,

release-<release number>-<branch name>-<commit hash> 

Beachten Sie, dass Sie ein Tag Nachricht einzugeben, die kann nicht leer sein. Natürlich können Sie das Tag-Format an Ihre Bedürfnisse anpassen. Bei jedem Aufruf wird ein neues Tag erstellt. Wenn Sie ein Commit anstelle eines Tags bevorzugen, kann es auch verwendet werden.

Auch wenn es um Release-Prozess geht gute Idee ist zu folgen git flow Regeln - in der Originalversion oder geändert, um Ihren Bedürfnissen entsprechen. Wenn Sie mit mehreren Verzweigungen arbeiten und vom Master freischalten, können Sie einen Hook konfigurieren, der automatisch eine Freigabe (Tag, Notiz, was auch immer) erstellt, wenn ein Zweig zum Master zusammengeführt wird.