Ich habe ein entferntes Git-Repository auf meinen Laptop geklont und wollte dann ein Tag hinzufügen, damit ich es ausführen konnte
git tag mytag master
Wenn ich git tag
auf meinem Laptop starte, wird das Tag mytag
angezeigt. Ich möchte dies dann in das Remote-Repository übertragen, damit ich dieses Tag auf allen meinen Clients habe, also führe ich git Push
aus, aber ich erhalte die Meldung:
Alles aktuell
Und wenn ich zu meinem Desktop gehe und git pull
und dann git tag
ausführe, werden keine Tags angezeigt.
Ich habe auch versucht, eine kleinere Änderung an einer Datei im Projekt vorzunehmen und sie dann auf den Server zu übertragen. Danach konnte ich die Änderung vom Server auf meinen Desktop-Computer übertragen, aber es ist noch kein Tag vorhanden, wenn git tag
auf meinem Desktop-Computer ausgeführt wird.
Wie kann ich mein Tag in das Remote-Repository übertragen, sodass es von allen Clientcomputern angezeigt wird?
git Push --follow-tags
Dies ist eine vernünftige Option, die in Git 1.8.3 eingeführt wurde:
_git Push --follow-tags
_
Es werden sowohl Commits als auch nur Tags übertragen, die beide sind:
Das ist vernünftig, weil:
Aus diesen Gründen sollte _--tags
_ vermieden werden.
Git 2.4 hat hinzugefügt die Option _Push.followTags
_, um dieses Flag standardmäßig zu aktivieren, das Sie festlegen können mit:
_git config --global Push.followTags true
_
So verschieben Sie ein einzelnes -Tag:
git Push Origin <tag_name>
Und der folgende Befehl sollte alle Tags (nicht empfohlen) drücken:
git Push --tags
Ein Tag folgt git Push Origin tag_name
, um einen bestimmten Push auszuführen.
Zum Erweitern von Trevors Antwort können Sie ein einzelnes Tag oder alle Ihre Tags gleichzeitig verschieben.
git Push <remote> <tag>
Dies ist eine Zusammenfassung der relevanten Dokumentation , die dies erklärt (einige Befehlsoptionen wurden der Kürze halber weggelassen):
git Push [[<repository> [<refspec>…]] <refspec>...
Das Format eines
<refspec>
-Parameters ist… die Quellreferenz<src>
, gefolgt von einem Doppelpunkt:
, gefolgt von der Zielreferenz<dst>
…Der
<dst>
gibt an, welcher Verweis auf der Remote-Seite mit diesem Push aktualisiert wird. Wenn:<dst>
weggelassen wird, wird derselbe Verweis wie<src>
aktualisiert.tag
<tag>
bedeutet dasselbe wierefs/tags/<tag>:refs/tags/<tag>
.
git Push --tags <remote>
# Or
git Push <remote> --tags
Hier ist eine Zusammenfassung der relevanten Dokumentation (einige Befehlsoptionen sind der Kürze halber weggelassen):
git Push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags
Alle Referenzen unter
refs/tags
werden zusätzlich zu den in der Befehlszeile explizit aufgeführten Referenzen gepusht.
Tags werden vom Befehl git Push nicht an das Remote-Repository gesendet. Wir müssen diese Tags explizit mit dem folgenden Befehl an den Remote-Server senden:
git Push Origin <tagname>
Mit dem folgenden Befehl können wir alle Tags gleichzeitig pushen:
git Push Origin --tags
Hier sind einige Ressourcen für vollständige Details zum Git-Tagging:
Sie können die Tags wie folgt verschieben git Push --tags
Sie können alle lokalen Tags mit dem Befehl git Push --tags
übertragen.
$ git tag # see tag lists
$ git Push Origin <tag-name> # Push a single tag
$ git Push --tags # Push all local tags
Ich verwende git Push <remote-name> tag <tag-name>
, um sicherzustellen, dass ich ein Tag drücke. Ich benutze es wie folgt: git Push Origin tag v1.0.1
. Dieses Muster basiert auf der Dokumentation (man git-Push
):
OPTIONS
...
<refspec>...
...
tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.