Git Describe 与 TRAVIS_TAG学习笔记

1、工具概念

1.1、TRAVIS_TAG

Travis CI 内置环境变量,仅当触发构建的事件是 Git 标签(Tag)时才会被赋值,值为标签名称(如 v1.0.0、2.1.1);非标签触发的构建(如提交代码、合并分支),该变量为空。在推送tag到云端服务器时,TRAVIS_TAG会临时生成为云端服务器的环境变量,在云端使用

1.2、git describe

Git 原生命令,用于生成基于最新标签的详细版本描述,格式为:最新标签名-提交次数-最新提交哈希前缀

示例:v1.0.0-5-g2a1f8c9

  • v1.0.0:距离当前最近的标签
  • 5:当前提交比该标签多 5 次提交
  • g2a1f8c9:当前最新提交的哈希前缀(g 代表 Git)

2、git describe 加 --tags 和不加的区别

这是最容易踩坑的点,直接决定命令能否找到你的标签

2.1、不加--tags(默认)

只识别「带注释的标签」,忽略「轻量标签」。

命令:git describe

适用:仅使用标准注释标签的项目

问题:如果你的标签是用 git tag v1.0.0(轻量标签)创建的,命令会报错 fatal: No names found, cannot describe anything.

2.2、加tags

识别所有标签(包含轻量标签 + 注释标签),兼容性最强。

命令:git describe --tags

适用:绝大多数项目(包含混用两种标签的场景)

优势:不会因为标签类型导致构建失败

2.3、加上 --always --tags

在 --tags 基础上增加 --always,无任何标签时直接返回提交哈希,彻底避免命令报错

命令:git describe --always --tags

结果示例:2a1f8c9(纯提交哈希)

2.4、注释标签和轻量级标签的区别

分别找一个注释标签1.2和轻量级标签1.2.1执行git show tag,输出内容如下:

bash 复制代码
# 执行git show 1.2
git show 1.2
tag 1.2  # 注释标签这里会有一行tag输出
Tagger: Garrett D'Amore <garrett@damore.org>
Date:   Mon Apr 18 19:35:25 2022 -0400

Version 1.2 - adds IPv6 support
# 执行git show 1.2.1, 可以看到直接是commit的信息
git show 1.2.1
commit fc3f684a80151a3319446fc96083a9ff384ee4fe (tag: 1.2.1, origin/master, origin/HEAD)
Author: Garrett D'Amore <garrett@damore.org>
Date:   Sat Feb 3 14:45:24 2024 -0800

    Drop CircleCI.
相关推荐
稷下元歌8 小时前
七天学会plc 加机器视觉完整笔记:S7-1200 数据类型、存储区与寻址方式(I/Q/M/DB 详解)。
网络·数据库·笔记
提子拌饭1338 小时前
Column 嵌套布局:多级 Column 实现复杂纵向结构——鸿蒙 HarmonyOS ArkTS 原生学习应用
学习·华为·harmonyos·鸿蒙·鸿蒙系统
逸模8 小时前
AI+BIM 重构连锁公装新范式 逸模打造数字化营建核心底座
大数据·人工智能·笔记·其他·信息可视化·重构
Patrick_Wilson8 小时前
Git Worktree 原理详解:从 objects / refs 看懂多分支并行与多 Agent 协作
git·面试·ai编程
xqqxqxxq8 小时前
树结构技术学习笔记
数据结构·笔记·学习
yaoxiaoganggang9 小时前
克隆 Superpowers 的规则库到你的本地(或者直接作为 Git Submodule)
人工智能·经验分享·git·ai编程
十月的皮皮9 小时前
C语言学习笔记202606008- 三角形判断(3种方法)
c语言·笔记·学习
XGeFei9 小时前
【Fastapi学习笔记(6)】—— Fastapi文件上传、请求头自动转换
笔记·学习·fastapi
嘶哈哈哈9 小时前
嘉立创 EDA 入门实操笔记:从原理图到 PCB 布线、差分对、覆铜与 DRC 检查
开发语言·笔记·php
一口吃俩胖子9 小时前
【脉宽调制DCDC功率变换学习笔记024】频域性能
笔记·学习