簡體   English   中英

如何使 git describe 僅使用與 semver 兼容的標簽

[英]How to make git describe use semver compatible tags only

我希望我的git describe調用僅使用符合語義版本控制的引用。 為簡單起見,目前,我不關心其他選項(如僅帶注釋的標簽、分支、候選者……)。

例子:

我用1.1.1 (與 semver 兼容)標記了一個早期/舊的提交,用my-software-2.2.2標記了一個更新的提交,用some-random-tag了一個甚至更新的提交。 我希望我的git describe調用只考慮1.1.1標簽。

這里的主要困難似乎是通過名稱限制標簽的方法是基於glob而不是正則表達式。

到目前為止我發現的最佳選擇:

git describe \
    --match='[0-9]*.[0-9]*.[0-9]*' \
    --exclude='*[^0-9.]*'

因為--match標志只支持原始 glob,而不是完整的正則表達式,所以這個檢查只考慮很簡單的 semver 形式integer-dot-integer-dot-integer ,而忽略其他有效的,比如:

  • 2.0.0-rc.2
  • 2.0.0-rc.1
  • 1.0.0-beta
  • 1.0.0-alpha+001
  • 1.0.0+20130313144700
  • 1.0.0-beta+exp.sha.5114f85
  • 1.0.0+21AF26D3—-117B344092BD

另一種選擇是使用(獨立於核心 git)Go 工具: git-describe-semver

示例用法:

cd my-git-directory
docker pull ghcr.io/choffmeister/git-describe-semver:latest
docker run --rm -v $PWD:/workdir ghcr.io/choffmeister/git-describe-semver:latest

暫無
暫無

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

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