首页 > 其他分享 >go: 从git得到版本信息的脚本

go: 从git得到版本信息的脚本

时间:2024-12-07 10:56:47浏览次数:6  
标签:git buildDate -- echo gitCommit go main 版本信息

一,脚本:

#!/bin/bash

gitTag=$(if [ "`git describe --tags --abbrev=0 2>/dev/null`" != "" ];then git describe --tags --abbrev=0; else git log --pretty=format:'%h' -n 1; fi)
echo $gitTag;
buildDate=$(TZ=Asia/Shanghai date +%Y-%m-%d\ %H:%M:%S)
echo $buildDate
gitCommit=$(git log --pretty=format:'%H' -n 1)
echo $gitCommit
gitBranch=$(git rev-parse --abbrev-ref HEAD)
echo $gitBranch

ldflags="-X main.gitTag=${gitTag} -X main.buildDate=${buildDate} -X main.gitBranch=${gitBranch} -X main.gitCommit=${gitCommit}"
echo $ldflags
go build -ldflags ${ldflags}

 

二,测试效果

$ ./build.sh
v1.0.2
2024-12-02 14:23:12
decffea369018dc5495e230fb6cace62cd233c32
master
-X main.gitTag=v1.0.2 -X main.buildDate=2024-12-02 14:23:12 -X main.gitBranch=master -X main.gitCommit=decffea369018dc5495e230fb6cace62cd233c32

 

标签:git,buildDate,--,echo,gitCommit,go,main,版本信息
From: https://www.cnblogs.com/architectforest/p/18581829

相关文章

  • git: 根据git的tag得到当前版本
    一,为指定commit打tag:#gittag'v1.0.1'f172507f3e9eaf6edb13042f51a52934e48925b7查看tag列表:#gittagv1.0.1 二,从tag获取当前版本: 展示当前分支的最近的tag#gitdescribe--tags--abbrev=0v1.0.1gitdescribe–tags:这个命令会显示当前代码所在的最近的tag......
  • gofiber: 模板:同名的参数会被覆盖
    一,代码1,go代码//用户登录func(uc*UserController)UserLogin(c*fiber.Ctx)error{ //返回map1 myMap1:=fiber.Map{} myMap1["name"]="老刘" myMap1["title"]="植物造林" err1:=c.Bind(myMap1) iferr1!=nil{ returnc.SendStr......
  • gofiber: 使用图形验证码d
    一,go代码1,安装第三方库:$goget-ugithub.com/mojocn/base64Captcha2,servicepackageserviceimport( "github.com/mojocn/base64Captcha" "image/color")//设置base64Captcha自带的storevarstore=base64Captcha.DefaultMemStore//得到图形验证码func......
  • gofiber: 获取参数
    一,得到?后的get参数:用Query方法id:=c.Query("id","0")例子:/article/detail?id=1234得到所有get参数: params:=c.Queries() fmt.Println("Queries:参数:") fmt.Println(params)二,得到路由参数:name:=c.Params("name")例子: 路由:/user/:name......
  • Goodbye OI
    终究还是要来写这篇文章了。以下将记录一些我认为值得纪念的事和瞬间,也算是对于我花费的时间的一种记录和总结,同时也不失为一种对过去的oi生活的一个道别。Hello,World!2018.07.14Hello,World!在http://noi.openjudge.cn/ch0101/solution/14110842/感谢当时的老师gutc带......
  • 电动汽车制造执行系统(MES)软件:GE Digital EV二次开发_(10).系统集成:MES与其他制造系统
    系统集成:MES与其他制造系统的接口开发在电动汽车制造过程中,制造执行系统(MES)作为生产管理的核心系统,需要与多种其他制造系统进行高效的数据交换和业务协同。这些系统包括但不限于生产计划系统(APS)、企业资源规划系统(ERP)、供应链管理系统(SCM)、质量管理系统(QMS)以及自动化设备(......
  • 电动汽车制造执行系统(MES)软件:GE Digital EV二次开发_(19).部署与运维:MES系统上线后的
    部署与运维:MES系统上线后的管理与维护在电动汽车制造执行系统(MES)软件上线后,管理和维护是确保系统稳定运行、高效生产的关键环节。这一节将详细探讨MES系统上线后的管理与维护,包括系统监控、故障排除、性能优化、数据备份与恢复、系统升级和安全管理等方面的内容。系统监......
  • 电动汽车制造执行系统(MES)软件:GE Digital EV二次开发_(20).持续改进:MES系统在电动汽车
    持续改进:MES系统在电动汽车制造中的迭代升级在电动汽车制造过程中,制造执行系统(MES)的持续改进是确保生产效率、质量控制和数据分析的关键。本节将详细介绍MES系统在电动汽车制造中的迭代升级原理和具体实践,包括需求分析、功能优化、系统集成和测试验证等关键步骤。1.需求......
  • 探索Google生成式AI嵌入服务:实现高效文本相似度计算
    引言在当今的AI驱动环境中,文本嵌入技术是一项重要工具,帮助我们将文本数据转换为易于计算机处理的向量格式。这种技术可用于多种任务,包括文本分类、相似度计算、信息检索等。本文将介绍如何通过langchain-google-genai包连接Google生成式AI嵌入服务,并运用这些嵌入向量解决实......
  • VUE: npm run dev报错Error: error:0308010C:digital envelope routines::unsupported
    emittingCompressionPluginERROR Error:error:0308010C:digitalenveloperoutines::unsupported 说明:该错误通常是Node.js的加密模块和OpenSSL版本不兼容造成的Node.js版本17及以上中,默认禁用了某些加密算法,这可能导致与一些期望使用这些算法的模块或应用程序的兼......