2016-04-22 71 views
6

我有兩個提交哈希,並希望列出在這兩個提交哈希之間以phinx-開頭的所有標記。我該怎麼做?獲取兩個提交之間的所有標記列表

編輯:

這是我想出了。有沒有更好的解決辦法

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

回答

1

如果你可以使用comm命令,看看這個解決方案

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

有趣的想法。謝謝。 –

+0

我喜歡這個,因爲這個模式只與標籤名稱匹配,並且只返回標籤名稱,而不是整個日誌行 – Francesco

+1

使用'comm'是我在答案中提出的[VonC在他的答案中鏈接](http: //stackoverflow.com/a/36787860/1256452)。它應該可以正常工作,但請注意提及文檔聲明comm應該排序的聲明。 (幸運的是'git tag -l'默認也是排序!) – torek

1

快速黑客可能是:

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

一個實際的解決方案might be more complex,涉及git rev-list

+0

謝謝@VonC。快速解決方案也是我的第一個想法。 –