首页 >后端开发 >Golang >如何在不修改源代码的情况下在 Go 二进制文件中嵌入 Git 修订版?

如何在不修改源代码的情况下在 Go 二进制文件中嵌入 Git 修订版?

DDD
DDD原创
2024-10-29 11:05:29389浏览

How to Embed Git Revision in Go Binaries Without Modifying Source Code?

将 Git 修订添加到 Go 中的二进制构建

软件开发中的一个常见需求是跟踪二进制可执行文件的来源。这对于故障排除和建立构建二进制文件的源版本特别有用。在 Go 中,将修订版号直接添加到源代码中似乎很直观,但这种方法会引起对更改源代码的担忧。

相反,请考虑在构建过程中合并 git 修订版。这种方法可确保二进制文件反映其创建过程中使用的修订版,而无需修改源代码。

使用 Git 修订版构建二进制文件

要实现此目的,请利用 git rev -parse --short HEAD 命令检索缩短的修订版哈希。接下来,将此值分配给 shell 脚本中名为 $VERSION 的变量。

在 Go 源代码中,在主包中声明一个版本变量。该变量应具有字符串数据类型。

最后,在构建过程中,执行以下命令将版本信息嵌入到二进制文件中:

#!/bin/sh
VERSION=`git rev-parse --short HEAD`
go build -ldflags "-X main.version=$VERSION"  myfile.go

通过在构建过程中执行该命令build 后,您可以动态地将 git 修订版嵌入到二进制文件中,而无需更改源代码。要访问修订信息,只需检索 Go 程序中版本变量的值即可。

以上是如何在不修改源代码的情况下在 Go 二进制文件中嵌入 Git 修订版?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn