2016-12-07 75 views
4

我想從我樹中的某個點獲取最新的git標記。從當前提交獲取最新的git標記

樹如下所示:

* 334322c|2016-12-06| (tag: 0.1265, tag: 0.1264) (18 hours ago) 
* 739392e|2016-12-06| (HEAD -> testbranch, tag: 0.1263, tag: 0.1262) (19 hours ago) 
* 8ec1add|2016-12-06| (tag: 0.1261, tag: 0.1260, tag: 0.1259) (20 hours ago) 
* 5b2667b|2016-12-06| (tag: 0.1258) (21 hours ago) 
* c7ff4bc|2016-12-06| (tag: 0.1257, tag: 0.1256) (22 hours ago) 

0.1263是git的標籤我期待的。

739392e使用git describe --tags時,只返回0.1262這是該提交的第一個標記,而我沒有得到所有候選。

739392e使用git describe --tags $(git rev-list --tags --max-count=1)時,返回0.1265樹上的最新標籤(不管HEAD在哪裏)。

+0

你試過這個:git log -1 --format =%TAG_NAME –

+0

'-format =%TAG_NAME'是什麼?這些是可用的佔位符:https://git-scm.com/docs/pretty-formats – Rotemmiz

+0

'git describe --tags'給出了一個候選人。列出所有標籤,測試每個標籤是否指向候選人。 – ElpieKay

回答

0

您可以使用git tagsub-command與列表選項指向特定提交你檢查:

git tag -l --points-at <commit|object> 

如果你使用Git 2.0或更高版本,它有一個--sort選項,它應該讓你按標籤日期順序排序結果,降序排列。

+0

請注意,排序僅適用於*註釋*標籤(輕量級標籤沒有自己的單獨日期)。沒有標籤日期,沒有明顯的正確順序。快速,這是更新的,'標籤:CODE-NIGHTMARE-GREEN'或'標籤:代碼 - 神 - 遊戲 - 黑色'? :-) – torek