2013-06-12 97 views
1

我們在我們的回購中使用多個標籤標識符。例如。 ABC-1.3.5.234和DEF-1.2.1.25。 describe命令讓我幾乎什麼,我想:git版本相對於特定標籤

git的描述--long

ABC-1.3.5.234-33-DEADBEEF

但我真的很想相對於最近的DEF值知道標籤在我的歷史中。有沒有辦法指定我想用哪個標籤作爲計算相對距離的基礎?我可以用正則表達式來完成嗎?

回答

0

git describe man page是明確的:

如果完全匹配的沒有發現,git的描述將走回通過提交歷史定位的祖先犯已被標記。祖先的標籤將與輸入提交的SHA-1的縮寫一起輸出。

如果在步行過程中發現多個標籤,那麼將選擇具有最少提交與輸入提交不同的標籤並輸出
這裏的最少提交數不同定義爲git log tag..input將顯示的提交數將是可能的最小提交數。

所以,你可能需要編寫一個腳本:

  • git describe
  • 採取提交發現git describe犯下
  • 重複,直到你得到的標籤,你正在尋找
  • 在該循環期間在所找到的標記對象之上總結所有編號'n'
  • 構建並輸出結果字符串:DEF-xxx-n-DEF_SHA1
+0

唉。就是這樣。我希望有一些不那麼聰明,更靈活的東西。也就是說,Git的聰明才智通常讓我的生活變得更加簡單。 – ScaryGhast