登录
首页 >  Golang >  Go问答

获取Go代码中的最新提交标识符的方法

来源:stackoverflow

时间:2024-02-19 16:33:22 484浏览 收藏

一分耕耘,一分收获!既然都打开这篇《获取Go代码中的最新提交标识符的方法》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新Golang相关的内容,希望对大家都有所帮助!

问题内容

有什么方法可以访问 go 代码中最后一次提交的标识符吗?我将使用它来命名我的代码生成的输出文件,这样我就可以找到与每个提交相关的输出。

我试图找到解决方案,但似乎没有简单的解决方案。


正确答案


有几种方法可以访问 go 代码中最后一次提交的标识符:

  1. git 命令:您可以使用 git rev-parse head 命令获取最新提交的 sha-1 哈希值。在 go 中,您可以使用 os/exec 包来执行此命令,如下所示:
package main

import (
    "fmt"
    "os/exec"
)

func main() {
    out, err := exec.command("git", "rev-parse", "head").output()
    if err != nil {
        fmt.println(err)
    }
    commithash := string(out)
    fmt.println(commithash)
}
  1. 构建标志:另一种方法是在编译期间使用 -ldflags 选项将提交哈希注入为构建变量。您可以使用 -x 标志设置构建变量,后跟包路径和变量名称。这是一个例子:
package main

import (
    "fmt"
)

var commithash string

func main() {
    fmt.println(commithash)
}

// setcommithash sets the commit hash during compilation using -ldflags.
// go build -ldflags "-x main.commithash=`git rev-parse --short head`"
func setcommithash(hash string) {
    commithash = hash
}

您可以使用 -ldflags 选项设置 commithash 变量,如下所示:

go build -ldflags "-X main.commitHash=`git rev-parse --short HEAD`"

这将在编译时将提交哈希注入到二进制文件中。

希望这会有所帮助!

本篇关于《获取Go代码中的最新提交标识符的方法》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>