Git 描述未能 return 最近的注释标签
Git describe fails to return most recent annotated tag
我写了一个函数,它使用 git
带注释的标签来创建新版本 and/or 为我的项目增加 semver 样式版本号。
我正在添加单元测试并注意到 git describe --abbrev=0
无法检索最新的标签,只有 几个 git tag -a <tag> -m <msg>
运行 在一个序列中。
我认为这与为同一提交创建的这些标签有关,但我认为 annotated 标签不应该是这种情况。
预期行为:
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
我写了一个函数,它使用 git
带注释的标签来创建新版本 and/or 为我的项目增加 semver 样式版本号。
我正在添加单元测试并注意到 git describe --abbrev=0
无法检索最新的标签,只有 几个 git tag -a <tag> -m <msg>
运行 在一个序列中。
我认为这与为同一提交创建的这些标签有关,但我认为 annotated 标签不应该是这种情况。
预期行为:
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