這適用于我的本地機器
git ls-remote --tags | grep -o 'refs/tags/[0-9]*\.[0-9]*' | sort -r | head -1 | grep -o '[^\/]*$
但不是在我的從 docker 運行的 jenkins 構建服務器中,它沒有權限,我似乎無法解決這個問題。
是否有替代方案ls-remote可以給我完全相同的輸出,但對于我的本地 git 存盤庫?
或者,是否有一個靈丹妙藥解決方案可以從我的本地回購中獲取最新標簽,從分支的頂端看,然后向后看?我一直在努力git tag | head -1尋找各種選擇,但沒有任何東西能給我從分支頂端搜索回來的最新標簽....
uj5u.com熱心網友回復:
git describe是一種原生方式,考慮到
設定為 0 時,該
--abbrev命令可用于查找最接近的沒有任何后綴的標記名
uj5u.com熱心網友回復:
看起來您正在嘗試比較版本號。
如果您對“我的倉庫中版本號最高的標簽”感興趣:
git tag --sort=v:refname | tail -1
如果您的版本標簽具有將它們與其他標簽區分開來的模式:
git tag --sort=v:refname --list "v[0-9]*" | tail -1
請注意,過濾器是一個 glob 模式,而不是一個正則運算式:
v[0-9]*在上面的示例中表示:v后跟任何字符,[0-9]然后是其他任何內容 ( *)
如果您在本地擁有所有標簽,這將起作用,因此在git fetch --tags此之前運行以獲得最新串列。
如果你想要“我當前分支歷史上版本號最高的標簽”:
git tag --sort=v:refname --merged=HEAD | tail -1
如果你想要“最接近我當前提交的標簽”:
git describe --tags --abbrev=0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/536305.html
標籤:混帐
上一篇:一起推送目錄和標簽
