2016-04-22 9 views
6

Ich habe zwei Commit-Hashes und möchte alle Tags auflisten, die mit phinx- zwischen diesen beiden Commit-Hashes beginnen. Wie kann ich es tun?Erhalte eine Liste aller Tags zwischen zwei Commits

Edit:

Dies ist, was ich mit gekommen sind. Gibt es eine bessere Lösung

git log --pretty=format:'%D' 35164f33..49085fbe | grep -o 'tag: phinx-[0-9]*' 

Antwort

1

Wenn Sie den comm Befehl verwenden können,

diese Lösung überprüfen
comm -23 <(git tag -l phinx-* --contains <sha1 start>) <(git tag -l phinx-* --contains <sha1 end>) 
+0

Interessante Idee. Vielen Dank. –

+0

Ich mag diese, weil das Muster nur mit dem Tag-Namen übereinstimmt und nur der Tag-Name zurückgegeben wird, nicht die ganze Protokollzeile – Francesco

+1

Verwenden von 'comm' ist, was ich in der Antwort vorgeschlagen [VonC in seiner Antwort] (http: //stackoverflow.com/a/36787860/1256452). Es sollte gut funktionieren, aber sehen Sie sich den Vorbehalt dort erwähnen die Behauptung der Dokumentation, dass Komm-Eingänge sortiert werden sollten. (Glücklicherweise wird 'git tag -l' standardmäßig ebenfalls sortiert!) – torek

1

Eine schnelle Hack könnte sein:

git log --oneline --decorate <sha1>..<sha1>|grep "tag:"| grep "phinx-" 

Eine tatsächliche Lösung might be more complex und beinhalten git rev-list.

+0

Sie @VonC danken. Die schnelle Lösung war auch mein erster Gedanke. –

Verwandte Themen