2016-04-22 20 views
6

Ho due hash di commit e voglio elencare tutti i tag che iniziano con phinx- tra questi due hash di commit. Come posso farlo?Ottenere un elenco di tutti i tag tra due commit

Edit:

Questo è quello che sono venuto su con. C'è una soluzione migliore

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

risposta

1

Se è possibile utilizzare il comando comm, di verificare questa soluzione

comm -23 <(git tag -l phinx-* --contains <sha1 start>) <(git tag -l phinx-* --contains <sha1 end>) 
+0

Idea interessante. Grazie. –

+0

Mi piace perché il pattern è abbinato solo al nome del tag e viene restituito solo il nome del tag, non l'intera riga del registro – Francesco

+1

L'uso di 'comm' è quello che ho suggerito nella risposta [VonC linkato nella sua risposta] (http: //stackoverflow.com/a/36787860/1256452). Dovrebbe funzionare bene, ma vedere l'avvertenza che menziona l'affermazione della documentazione secondo cui gli input comm dovrebbero essere ordinati. (Fortunatamente anche 'git tag -l' è pronto per l'ordinamento!) – torek

1

Un hack rapido potrebbe essere:

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

Una soluzione reale might be more complex e coinvolgere git rev-list.

+0

Grazie @VonC. La soluzione rapida è stata anche la mia prima riflessione. –