2016-07-07 34 views
1

Auch wenn es andere Möglichkeiten gibt, Code als letzten stabilen Code zu markieren (z. B. Release-Zweige), habe ich mich gefragt, warum nicht ein Tag zum Markieren des letzten stabilen (even über Hauptversionsnummern oder jedes andere Versionierungsschema).Update eines Remote-Tags in git (um die letzte stabile Version zu markieren)

Das Konzept von Tag in Git ist sowieso nicht freundlich zu dieser Verwendung, da Tags nicht aktualisiert werden können (verschoben wie das Dokument sagt). Selbst wenn ich ein annotiertes Tag irgendwo anders lösche und neu erstelle, erhalte ich einen Fehler, wenn ich versuche, es an die Fernbedienung zu senden. Gibt es eine Möglichkeit, das Remote-Tag direkt von einem lokalen mit demselben Namen zu aktualisieren?

Antwort

2

Natürlich gibt es.

git push --tags -f 

Kraft drückt Tags. Wenn Sie es also lokal aktualisieren, wird es auch auf der Fernbedienung aktualisiert.

Die obige Lösung ist jedoch riskant, da sie ALLE Tags verschiebt und sie überschreibt. Sagen Sie Ihr Tag

stable 
gestattet

dann können Sie das folgende

Zuerst tun, löschen Sie die Remote-Tag

git push origin :refs/tags/stable 

Als nächstes Push auf dem Standardweg

git push --tags 

Or ... als Einzeiler

git push origin stable:refs/tags/stable 
+0

In der Tat funktioniert der Onliner, aber dann müssen Sie auch daran denken, Tags beim Abrufen zu aktualisieren (git fetch --trags), sonst behält jeder Klon seine alte Referenz. Nicht sehr praktisch – a1an