Frage Wie kann ein Tag mit Git in ein Remote-Repository verschoben werden?


Ich habe ein Remote-Git-Repository auf meinen Laptop geklont, dann wollte ich ein Tag hinzufügen, also bin ich gelaufen

git tag mytag master

Wenn ich renne git tag auf meinem Laptop das Etikett mytag wird gezeigt. Ich möchte das dann an das Remote-Repository übertragen, damit ich dieses Tag auf allen meinen Clients habe, also laufe ich git push aber ich habe die Nachricht bekommen:

alles aktuell

Und wenn ich auf meinen Desktop gehe und renne git pull und dann git tag Keine Tags werden angezeigt.

Ich habe auch versucht, eine kleine Änderung an einer Datei im Projekt vorzunehmen, und dann auf den Server zu schieben. Danach konnte ich die Änderung vom Server auf meinen Desktop-Computer übertragen, aber beim Ausführen gibt es immer noch kein Tag git tag auf meinem Desktop-Computer.

Wie kann ich mein Tag an das Remote-Repository senden, damit alle Clientcomputer es sehen können?


1543
2018-03-04 15:37


Ursprung


Antworten:


Um a Single Etikett:

git push origin <tag_name>

Und der folgende Befehl sollte drücken alle Tags (nicht empfohlen):

git push --tags

2458
2018-03-04 15:40



git push --follow-tags

Dies ist eine vernünftige Option, die in Git 1.8.3 eingeführt wurde:

git push --follow-tags

Es drückt sowohl Commits als auch nur Tags, die beide sind:

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

Das ist gesund, weil:

Aus diesen Gründen --tags sollte vermieden werden.

Git 2.4 hat hinzugefügt das push.followTags Option, um dieses Flag standardmäßig einzuschalten, das Sie einstellen können mit:

git config --global push.followTags true

695
2017-10-18 09:12



Um spezifisch zu drücken, folgt ein Tag git push origin tag_name


228
2017-10-24 14:43



Um weiter zu expandieren Trevors Antwort, Sie können ein einzelnes Tag oder alle von Ihnen schieben Tags auf einmal.

Drücken Sie ein einzelnes Tag

git push <remote> <tag>

Dies ist eine Zusammenfassung der relevante Dokumentation das erklärt dies (einige Befehlsoptionen wurden der Kürze wegen weggelassen):

git push [[<repository> [<refspec>…]]

<refspec>...

Das Format von a <refspec> Parameter ist ... der Quellenref <src>,   gefolgt von einem Doppelpunkt :, gefolgt vom Zielref <dst>...

Das <dst> Gibt an, welcher Ref auf der Remote-Seite aktualisiert wird   schiebe ... Wenn :<dst> ist weggelassen, das gleiche wie <src> wird sein   aktualisiert…

Etikett <tag> bedeutet dasselbe wie refs/tags/<tag>:refs/tags/<tag>.

Drücken Sie alle Ihre Tags gleichzeitig

git push --tags <remote>
# Or
git push <remote> --tags

Hier ist eine Zusammenfassung der relevante Dokumentation (Einige Befehlsoptionen der Kürze halber weggelassen):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]]

--tags

Alle Referenzen unter refs/tags werden zusätzlich zu refspecs explizit gepusht   in der Befehlszeile aufgeführt.


74
2018-04-22 10:52



Sie können die Tags so drücken git push --tags


41
2018-03-04 15:40



Tags werden nicht mit dem Befehl git push an das Remote-Repository gesendet. Wir müssen diese Tags mithilfe des folgenden Befehls explizit an den Remoteserver senden:

git push origin <tagname>

Wir können alle Tags gleichzeitig mit dem folgenden Befehl pushen:

git push origin --tags

Hier finden Sie 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


38
2018-01-10 05:57



Sie können einfach Ihre lokalen Tags pushen git push --tags Befehl.

$ git tag                            # see tag lists
$ git push origin <tag-name>         # push a single tag
$ git push --tags                    # push all local tags 

13
2017-11-25 08:15



ich benutze git push <remote-name> tag <tag-name> um sicherzustellen, dass ich ein Tag dränge. Ich benutze es wie: 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>.

2
2018-04-18 18:24



Bitte verwenden Sie es nicht, wenn Sie nur nach einem Befehl suchen, da die Hauptabsicht dieser Lösung darin besteht, Ihnen einen Lösungsweg vorzustellen!

Um das Leben einfacher zu machen - ich habe ein Skript geschrieben Git-Spickzettel , die einige nützliche Befehle enthält, einschließlich der folgenden:

./git_commands.sh -push_tag TAG_NAME


0
2018-06-19 16:07