3

我正在使用 Jenkins 的Git 插件并使用Douglas Creager 的 get_git_version脚本。这使用 git describe 为 python 模块获取一些合理的版本。通常这会产生类似的东西0.1-11-g80fe130,但在詹金斯我得到:

+ git describe
fatal: No names found, cannot describe anything.

我已将插件配置为不通过“跳过内部标签”提供自己的标签。

像这个关于从詹金斯推送的问题中那样对主分支进行额外的检查并没有帮助。

4

2 回答 2

3

关于标签(如“本周 Git 提示:标签”中所述)

如果没有找到带注释的标签,那么它将打印fatal: No names found, cannot describe anything.
要允许 describe 使用非注释标签,请使用git describe --tags.
也可以使用 来针对分支进行描述git describe --all,尽管这仅在分支是远程已知的情况下才有意义。

因此,Git 插件正在针对其执行简单 git describe 的当前存储库可能不包含任何带注释的标记(这解释了为什么签出分支的提示并不能解决问题:这不是关于一个分离的头部情况)

您需要克隆存储库,包括标签。


实际上,OP Jasper Van Den Bosch报告:

我没有正确推送标签

没有推送标签,意味着 Jenkins 在更新自己的克隆时没有得到这些标签,意味着git describe无法正常工作。

于 2012-04-22T14:21:45.197 回答
1

git describe在当前签出之前的历史记录中有标签(最好是带注释的标签)之前,它不起作用。

/tmp/repo$ git describe
fatal: No names found, cannot describe anything.
/tmp/repo$ git tag foo
/tmp/repo$ git describe
fatal: No annotated tags can describe '14d827c72b2f277a5cd3e65e7b0e0502edc58fa3'.
However, there were unannotated tags: try --tags.
/tmp/repo$ git tag -a 'annotated-tag' -m 'whatever'
/tmp/repo$ git describe
annotated-tag
于 2012-04-22T14:19:23.823 回答