it-swarm.com.de

Wie schiebe ich ein Tag mit Git in ein Remote-Repository?

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?

2026
Jonas

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:

  • kommentiert
  • erreichbar (ein Ahne) von den Push-Commits

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
3348
Trevor

Ein Tag folgt git Push Origin tag_name, um einen bestimmten Push auszuführen.

250
solgar

Zum Erweitern von Trevors Antwort können Sie ein einzelnes Tag oder alle Ihre Tags gleichzeitig verschieben.

Schieben Sie einen einzelnen Tag

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 wie refs/tags/<tag>:refs/tags/<tag>.

Schieben Sie alle Ihre Tags auf einmal

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.

89
user456814

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:

http://www.cubearticle.com/articles/more/git/git-tag

http://wptheming.com/2011/04/add-remove-github-tags

49
Ashutosh Meher

Sie können die Tags wie folgt verschieben git Push --tags

46

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 
28
Sajib Khan

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>.
7
Carl G