簡體   English   中英

如何獲取最新版本的git標簽以及到HEAD的距離

[英]How to get the latest release tag in git and the distance to HEAD

https://github.com/google/glog為例。 最新版本是0.3.5。

在stackoverflow和Google上搜索了幾個小時后,我找不到正確的答案。

git describe 

節目

v0.3.3-147-gb3695ee

git describe --tags

節目

v0.3.4-133-gb3695ee

git describe --tags `git rev-list --tags --max-count=1`

節目

v0.3.5

我應該輸入什么命令才能獲得

v0.3.5-41-gb3695ee

我認為您的命令使用是正確的,更多的是回購/分支問題。

簡要地,從describe文檔中:

該命令查找可從提交訪問的最新標記。 如果標簽指向提交,則僅顯示標簽。 否則,它將在標記名稱后加上標記對象后附加的提交次數以及最近提交的縮寫對象名稱后綴。

默認情況下(不帶--all或--tags),git describe只顯示帶注釋的標簽。 有關創建帶注釋標簽的更多信息,請參見git-tag的-a和-s選項。

因此,如果沒有使用git describe來顯示所需的標簽,我們可以假設是:

  • 從當前提交無法訪問。
  • 不是帶注釋的標簽。
  • 沒有現有標簽。

為了顯示非注釋標簽,我們可以使用git describe --tags 由於這似乎為我們提供了一個不同的標簽,但沒有給您提供一個標簽,因此我們可以得出結論,您感興趣的標簽不存在,或者無法從當前分支訪問。

我克隆問題的回購,跑git tag --list這確實顯示出選擇的標簽,包括0.3.30.3.40.3.5 因此,該標簽似乎已存在,但不能位於master分支上。 我們可以使用git branch --contains <commit>確認這一點,其中<commit>0.3.5 如果您尚未克隆任何遠程分支,則將沒有任何結果。

我們可以運行git branch -r --contains <commit>來檢查遠程分支,它給出了輸出origin/v035 看起來我們所需要的標簽只能在遠程origin/v035分支上訪問。

如果我們在本地檢出此分支,然后運行git describe --tags ,將獲得輸出v0.3.5 ,我們看不到文檔描述的后綴,因為該標記指向當前提交(分支的尖端) 。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM