2015-06-12 6 views
6

Gibt es eine Möglichkeit, die letzten N Tags in git anzuzeigen?Wie die letzten N-Tags in GIT angezeigt werden

Ich bin nicht an einem Muster interessiert, weil sich das ändern kann. Zum Beispiel lassen Sie uns sagen, ich habe diese Tags und ich will den letzten 3 von ihnen erhalten:

v1.0.0 
v1.0.1 
v2.0.0 
v2.1.0 
v3.0.0 

Basierend auf der Pro Git scheint, dass dies nicht erreicht werden kann. Oder ich vermisse etwas?

Antwort

4

Dies kann mit git tag --sort Option erfolgen, die in Git v 2.0.0 eingeführt wird.

Hinweis: Ich verwende das Minuszeichen -, um die umgekehrte Sortierreihenfolge zu erhalten (Standard ist vom neuesten zum neuesten).

Ersetzen Sie <number> durch eine tatsächliche natürliche Zahl.

UNIX, Linux, OS X

git tag --sort=-version:refname | head -n <number> 

Von man head:

head [-n count | -c bytes] [file ...] 

Dieser Filter zeigt die erste Zählung Zeilen oder Bytes von jedem der angegebenen Dateien oder der Standardeingabe wenn keine Dateien angegeben sind. Wenn count weggelassen wird es standardmäßig auf 10.

Windows die UNIX Weg

  1. Installieren Cygwin
  2. Siehe Antwort für UNIX

Windows native Möglichkeit

git tag --sort=-version:refname | Select -First <number> 

(Info über Select Befehl wurde am serverfault gefunden)

Von git reference:

--sort=<type> 

Sortierung in einer bestimmten Reihenfolge. Unterstützter Typ ist "refname" (lexikographische Reihenfolge), "version: refname" oder "v: refname" (Tagnamen werden als Versionen behandelt). Die Sortierreihenfolge "version: refname" kann auch durch die Konfigurationsvariable "versionsort.preleaseSuffix" beeinflusst werden. Setzen Sie "-" voran, um die Sortierreihenfolge umzukehren. Wenn diese Option nicht angegeben wird, wird die Sortierreihenfolge standardmäßig auf den Wert gesetzt, der für die Variable tag.sort konfiguriert wurde, falls sie vorhanden ist, oder andernfalls auf die lexikographische Reihenfolge.

2

Es gibt keinen einzigen Befehl dafür. Sie müssen dafür eine Kombination der Befehle describe und rev-list verwenden.

git describe --tags $(git rev-list --tags --max-count=3) 

bekam die Antwort von hier: https://stackoverflow.com/a/7979255/2336787

+1

@nickolynkin Sie haben Recht. Meine Antwort ist nur ein alter Alias, den ich benutzt habe. Ich bin immer noch auf msysgit 1.9.5 (die die '--sort'-Option nicht unterstützt).Also, ich denke, diese Antwort ist nur für Leute, die noch nicht auf Git 2.x sind – hsirah