git - Go:如何向构建的二进制文件添加 git 修订版?

标签 git version-control go

我想将当前的 git 修订号添加到 go build 构建的二进制文件中,这样我就可以执行类似 ./mybinary --revision 的操作来查看哪个构建它的修订版(通常用于部署后的故障排除)。

显然,我不能将修订号放入源代码中,因为那样会用新修订更改源代码。

我想知道是否还有其他方法可以做到这一点?
或者你认为这只是一个坏主意?如果是这样,在构建的二进制文件与其源版本之间建立关系的推荐方法是什么?
对于分布式版本控制系统,版本号似乎不是一个好主意。

最佳答案

如果您可以将 git 修订版放入 $VERSION 并且在您的主包中有一个名为 version 的变量(类型为字符串),您可以在构建期间设置它:

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

关于git - Go:如何向构建的二进制文件添加 git 修订版?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15711780/

相关文章:

xcode - 无法从 Xcode 中的 SVN 存储库更新项目

svn - 与工作副本相比,Subversion 存储库的文件大小较小?

regex - 如何用正则表达式捕获 'multiple'重复组

go - 如何将可变参数传递给其他函数

linux - 如何只推送当前索引中的文件?

GitHub 工作流程 : Should each developer have their own fork?

git - 重命名仓库并推送新代码

go install 无法识别 "-o"标志

git - 为什么 git rebase 覆盖我的本地更改?如何避免覆盖?

git status -> 显示将在子目录中添加(暂存)的文件