亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Go:如何將 git 修訂版添加到構建的二進制文件中?

Go:如何將 git 修訂版添加到構建的二進制文件中?

Go
肥皂起泡泡 2021-06-03 21:50:44
我想將當前的 git 修訂號添加到構建的二進制文件中,go build以便我可以做一些事情,比如./mybinary --revision查看它是從哪個修訂版構建的(通常用于部署后的故障排除)。顯然,我不能將修訂號放入源代碼中,因為這會用新的修訂版本更改源代碼。我想知道是否有其他方法可以做到這一點?或者你認為這只是一個壞主意?如果是這樣,在構建的二進制文件與其源版本之間建立關系的推薦方法是什么?對于分布式版本控制系統,版本號似乎不是一個好主意。
查看完整描述

3 回答

?
慕蓋茨4494581

TA貢獻1850條經驗 獲得超11個贊

如果您可以將 git 修訂版放入 $VERSION 并version在主包中有一個名為(類型字符串)的變量,則可以在構建期間使用以下命令設置它:


#!/bin/sh

VERSION=`git rev-parse --short HEAD`

go build -ldflags "-X main.version=$VERSION"  myfile.go


查看完整回答
反對 回復 2021-06-07
?
RISEBY

TA貢獻1856條經驗 獲得超5個贊

我會用一個version.go文件創建一個文件,var version string然后在調用之前處理它并在調用go build之后重置它。換句話說,go 不支持任何類型的代碼生成,所以你需要依靠外部的東西來做到這一點。


查看完整回答
反對 回復 2021-06-07
?
手掌心

TA貢獻1942條經驗 獲得超3個贊

對于所有和任何版本的 Git 代碼,獲取任何變更集的標識字符串的最明顯方法(而我將在--revision選項上顯示此字符串的任務留給您)是

  • 使用(至少偶爾)標簽

  • git describe(帶有相關選項)在構建階段


查看完整回答
反對 回復 2021-06-07
  • 3 回答
  • 0 關注
  • 259 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號