我编写了一个函数,该函数使用git
注释标记为我的项目创建新版本和/或增强semver样式的版本号。
我正在添加单元测试,注意到当几个git tag -a <tag> -m <msg>
在一个序列中运行时,git describe --abbrev=0
无法检索最新的标记,仅。
我认为这与为同一提交创建这些标签有关,但我认为注释的标签不应该是这样。
预期行为:
git tag 1 -m v1; sleep 1; git tag 2 -m v2; sleep 1; git tag 3 -m v3
git describe --abbrev=0
3
再现问题:
git tag 1 -m v1; git tag 2 -m v2; git tag 3 -m v3
git describe --abbrev=0
1
我发现在每次提交时强制执行一个注释标记更容易。
首先,用--abbrev=0
检索最后一个带注释的标记,检查当前提交是否包含它,如果包含,则删除它
last_version=$(git describe --abbrev=0)
if git tag --contains $(git rev-parse HEAD) | grep -q "^$last_version$"; then
git tag -d $last_version
fi
git tag $version -m $msg