Go编程:包、函数与系统编程全解析
1. Go包与函数中的版本控制
在Go编程中,若要使用GitHub的值作为版本字符串,我们需要获取当前仓库最新提交的哈希值。可以使用 git rev-list HEAD 命令返回当前仓库从最新到最旧的完整提交列表,但我们仅需最新的那一个。获取最新提交哈希值可使用 git rev-list -1 HEAD 或 git rev-list HEAD | head -1 。
接下来,我们要将该值赋给环境变量,并传递给Go编译器。由于每次提交时该值都会改变,且我们总是希望使用最新值,因此每次执行 go build 时都应重新评估该值。具体操作如下:
$ export VERSION=$(git rev-list -1 HEAD)
$ go build -ldflags "-X main.VERSION=$VERSION" gitVersion.go
若想同时执行这两条命令,可使用如下方式:
$ export VERSION=$(git rev-list -1 HEAD) && go build -ldflags "-X main.VERSION=$VERSION" gitVersion.go
运行生成的可执行文件 gitVersion ,输出结果类似如下:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



