Ich bin mir des Grundes bewusst, der git push --tags
eine separate Operation ist, die einfach alt ist git push
. Das Pushen von Tags sollte eine bewusste Wahl sein, da Sie nicht versehentlich eines pushen möchten. Das ist gut. Aber gibt es eine Möglichkeit, beide zusammenzubringen? (Abgesehen von git push && git push --tags
.)
387
git push && git push --tags
?--follow-tags
Option seit Git 1.8.3--tags
nicht zwischen leichten und kommentierten Tags QuelleAntworten:
Update Mai 2015
Ab Git 2.4.1 können Sie dies tun
Wie in diesem Thread von Matt Rogers erwähnt, der Wes Hurd antwortet :
--follow-tags
schiebt nur kommentierte Tags .Das würde geschoben werden (im Gegensatz zu
git tag <tagname>
einem leichten Tag, das nicht geschoben würde, wie ich hier erwähnte )Update April 2013
Seit Git 1.8.3 (22. April 2013) müssen Sie nicht mehr zwei Befehle ausführen, um Zweige und dann Tags zu verschieben :
Sie können jetzt versuchen, wenn Sie neue Commits pushen:
Dadurch werden jedoch nicht alle lokalen Tags gepusht, sondern nur die, auf die durch Commits verwiesen wird, die mit dem gepusht werden
git push
.In Git 2.4.1+ (2. Quartal 2015) wird die Option eingeführt
push.followTags
: Siehe " So wird"git push
"Tags in einen Zweig aufgenommen? ".Ursprüngliche Antwort, September 2010
Die nukleare Option wäre
git push --mirror
, die alle Schiedsrichter unter Druck setzen wirdrefs/
.Sie können mit Ihrem aktuellen Branch Commit auch nur ein Tag pushen:
Sie können die
--tags
Option mit einer Referenzspezifikation wie der folgenden kombinieren :(da
--tags
bedeutet: Alle Refs unterrefs/tags
werden gepusht, zusätzlich zu den Refspecs, die explizit in der Befehlszeile aufgeführt sind )Sie haben auch diesen Eintrag " Verschieben von Zweigen und Tags mit einem einzigen" Git Push "-Aufruf "
Vorsicht , wie von Aseem Kishore kommentiert
push = +refs/heads/*
wird alle deine Zweige zwangsschieben .René Scheibe fügt diesen interessanten Kommentar hinzu :
quelle
push = +refs/heads/*
Linie Kraft -pushes alle Ihre Filialen. Das hat mich gerade gebissen, also zu Ihrer Information.--follow-tags
in Git 1.8.3 hinzugefügte Flag. Kann ich meine Git-Installation so konfigurieren, dass dies die Standardeinstellung ist?push.default
( git-scm.com/docs/git-config ) Standardaktionen auf Push definieren kann (nothing
,matching
,upstream
,simple
wie in stackoverflow.com/a/10002469/6309 ). Sie müssen--follow-tag
explizit hinzufügen .git push --follow-tags -f
hat bei mir nicht funktioniert.--follow-tags
Parameter ist irreführend, da nur Tags unter.git/refs/tags
berücksichtigt werden. Wenngit gc
es ausgeführt wird, werden Tags von.git/refs/tags
nach verschoben.git/packed-refs
. Danachgit push --follow-tags ...
funktioniert es nicht mehr wie erwartet.Vielleicht hilft das jemandem:
quelle
@ seit Git 2.4
git push --atomic origin <branch name> <tag>
quelle
Git GUI hat eine PUSH-Schaltfläche - entschuldigen Sie das Wortspiel, und das Dialogfeld, das es öffnet, enthält ein Kontrollkästchen für Tags.
Ich habe einen Zweig über die Befehlszeile ohne Tags
--follow-tags
verschoben und dann erneut versucht, den Zweig mit der oben beschriebenen Option zu verschieben. Die Option wird wie folgt beschrieben: Kommentierte Tags. Meine Tags waren einfache Tags.Ich habe etwas behoben, das Commit mit dem Fix in markiert (damit Kollegen das Update auswählen können), dann die Versionsnummer der Software geändert und die von mir erstellte Version markiert (damit Kollegen diese Version klonen können).
Git kehrte zurück und sagte, alles sei auf dem neuesten Stand. Die Tags wurden nicht gesendet! Vielleicht, weil die Tags nicht kommentiert wurden. Vielleicht, weil es in der Branche nichts Neues gab.
Als ich einen ähnlichen Push mit Git GUI machte, wurden die Tags gesendet.
Vorerst werde ich meine Änderungen an meinen Fernbedienungen mit der Git-GUI und nicht mit der Befehlszeile und übertragen
--follow-tags
.quelle