如何解决当git describe时出现“No names found, cannot describe anything”的错误


如何解决当git describe时出现“No names found, cannot describe anything”的错误

背景

一般而言,我们喜欢直接将git项目仓库的Tag号打包到代码中,这样至少可以很明确地知道线上究竟是哪一个版本。

通常这个版本信息的获取都是通过类似如下命令:

git describe --long --tags --dirty

但遇到一个问题,如果这个git仓库还没有任何一个Tag,那么就报了一个错误:

fatal: No names found, cannot describe anything.

解决办法

一个最简单的解决思路就是当Tag不存在时,直接使用最新的Commit Id来作为版本号也可以,因此只需这样:

git describe --long --tags --dirty --always

这个命令在有Tag时会取Tag信息作为版本号,没有Tag时会取Commit Id,非常赞。