“git push” und “git push –tags” im selben Befehl?

Lesezeit: 3 Minuten

Benutzer-Avatar
Nikolaus Raul

Ich laufe normalerweise:

git push
git tag v4.7
git push --tags

Sowohl die erste als auch die dritte Operation stellen eine Verbindung zum Server her, was Zeit verschwendet.
Ich möchte es schneller machen, indem ich nur einmal drücke. Welche Befehle würden dies erreichen?
Es ist in einer Bastelei Skriptund muss in jeder Branche gut laufen, nicht nur master.

Handbuch lesen, glaube ich nicht git push all ist die Lösung:

–all: Anstatt jede zu pushende Referenz zu benennen, legt fest, dass alle Refs unter refs/heads/ gepusht werden.

–tags: Alle Refs unter Refs/Tags werden gepusht, zusätzlich zu den Refspecs, die explizit auf der Befehlszeile aufgeführt sind.

  • wie wäre es mit git push --tags HEAD?

    – Daniel Hilgart

    16. Oktober 2013 um 13:17 Uhr

  • HEAD bedeutet den aktuellen Zweig, also kann ich ihn tatsächlich als “explizit aufgeführte Refspec” verwenden! Könnten Sie dies bitte als Antwort posten, damit ich es akzeptieren kann?

    – Nikolaus Raoul

    16. Oktober 2013 um 13:21 Uhr

Die nächste Option könnte sein:

git push --follow-tags

Pushen Sie alle Refs, die ohne diese Option gepusht würden, und pushen Sie auch annotierte Tags in Refs/Tags, die in der Fernbedienung fehlen, aber auf Commit zeigen, die von den gepushten Refs erreichbar sind.

  • Das klingt auch nach einer gültigen Lösung … Wie unterscheidet es sich von git push --tags HEAD?

    – Nikolaus Raoul

    16. Oktober 2013 um 13:23 Uhr

  • @NicolasRaoul Like git push es pusht auch andere Tracking-Zweige (abhängig von push.default Konfiguration), nicht nur HEADund es pusht Tags auf gepushte Branches, nicht alle Tags.

    – Körnel

    16. Oktober 2013 um 13:24 Uhr


  • Beachten Sie, dass --follow-tags wird nur schieben kommentiert -Tags (obwohl Sie das oft sowieso wollen).

    – Torek

    16. Oktober 2013 um 17:32 Uhr

  • @DanielHilgarth, git push ohne dass ihm explizit Refspecs übergeben werden verhält sich gem push.default Konfigurationsvariable, die, falls nicht vorhanden, derzeit standardmäßig verwendet wird matching.

    – Kostix

    17. Oktober 2013 um 9:41 Uhr

  • Ab Git 2.0 ist die Vorgabe if push.default ist nicht eingestellt ist eingestellt auf simple was so ziemlich den aktuellen Zweig bedeutet. Siehe diese Frage

    – Jakob Wang

    24. Juli 2017 um 6:25 Uhr

Benutzer-Avatar
Daniel Hilgart

Laut der Dokumentation von --tags Sie können zusätzliche Refspecs angeben, die gepusht werden sollen.

So können Sie einfach verwenden

git push --tags origin HEAD

  • Dies scheint nicht zu funktionieren: “fatal: ‘HEAD’ scheint kein Git-Repository zu sein”. git push origin HEAD --tags funktioniert aber.

    – Marius Gedminas

    25. März 2015 um 7:10 Uhr

  • @MariusGedminas: Danke, dass du das aufgefangen hast. Fest.

    – Daniel Hilgart

    26. März 2015 um 14:23 Uhr

Sie können einen Alias ​​erstellen, um einen schnellen Zugriff auf diesen Befehl zu haben:

git config --global alias.p '!git push && git push --tags'

oder

git config --global alias.pa '!git push --all && git push --tags'

jetzt kannst du es so machen:

git tag v4.7
git p

Sie können mehr über Aliase lesen hier

  • Interessanter Tipp, aber das reduziert nicht die Anzahl der Anfragen an den Server, oder? Wie in der Frage erläutert, handelt es sich um ein Bash-Skript, daher geht es bei meiner Frage nicht darum, weniger zu tippen.

    – Nikolaus Raoul

    17. Februar 2017 um 2:10 Uhr

1226010cookie-check“git push” und “git push –tags” im selben Befehl?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy