0. 概述

经常在 build 的时候都遇到这个错误,但是可以被忽略所以就没有关注,今天我决定消灭一下它,所以了解了一下。

1. 问题原因

其实出现这个问题是因为我在 build 脚本中使用了 git describe,这个命令可以用于生成软件的版本,但是,如果你没有给你的代码打 tag,那么不特别加参数的情况下是没有返回的,所以就会报这个错误:

[[email protected]]# git describe --long --tags --dirty
fatal: 没有发现名称,无法描述任何东西。

2. 解决方式

这里的解决方式也比较简单,就是允许在没有 tag 的时候,直接使用 git commit hash 作为软件的版本(在很多 docker image 中很常见),所以要修改为:

[[email protected]]#  git describe --long --tags --dirty --always
077c759-dirty
[[email protected]]# git describe --long --tags --dirty --always
v0.0.0-rc.0-37-ga9c0ec2-dirty

这样,在没有版本的时候就可以使用 git commit hash,有版本的时候就是版本信息。

3. Ref