繁体   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