为什么我应该关心轻量级标签与带注释的标签?

2023-11-23

去年,我从 Subversion 转向 Git 作为我的日常 VCS,并且仍在努力掌握“Git-think”的精髓。

最近困扰我的是“轻量级”与带注释和签名的标签。似乎人们普遍认为,在所有实际用途中,带注释的标签都优于轻量级标签,但我找到的解释为什么会出现这种情况似乎总是归结为以下两种情况之一:“因为最佳实践” or “因为他们不一样”。不幸的是,这些都是在不知情的情况下非常令人不满意的论点why这是最佳实践或这些差异如何relevant我的 Git 使用情况。

当我第一次转向 Git 时,轻量级标签似乎是自切片面包以来最好的东西;我可以指向一个提交并说“那是 1.0”。我很难理解标签如何需要比这更多,但我当然不能相信世界上的 Git 专家任意喜欢带注释的标签!那么这一切的喧嚣是什么呢?

(奖励积分:为什么我需要签署标签?)

EDIT

我去过成功说服带注释的标签是一件好事——知道谁被标记以及何时被标记很重要!作为后续,关于好的标签注释有什么建议吗?两个都git tag -am "tagging 1.0" 1.0并尝试总结提交日志,因为前一个标签感觉像是失去了策略。


带注释的标签的一大优点是您知道它是谁创建的。就像提交一样,有时很高兴知道是谁做的。如果您是一名开发人员,并且看到 v1.7.4 已被标记(声明就绪),但您不太确定,您会与谁交谈?名字在标注标签中的人! (如果你生活在一个不信任的世界里,这也会让人们无法逃脱标记他们不应该标记的东西。)如果你是一个消费者,这个名字就是一个权威的印记:Junio Hamano 说这个版本的 git 特此声明释放。

其他元数据也很有帮助 - 有时很高兴知道该版本何时发布,而不仅仅是最终提交的时间。有时该消息甚至可能有用。也许它有助于解释该特定标签的用途。也许候选版本的标签包含一些状态/待办事项列表。

签署标签与签署其他任何东西非常相似 - 它为偏执者提供了更高级别的安全性。我们大多数人都不会使用它,但如果您确实想在将该软件安装到计算机上之前验证所有内容,您可能会需要它。

Edit:

至于在标签注释中写什么,你是对的 - 并不总是有太多有用的东西可说。对于版本号标签,它隐式地理解为它标记了该版本,如果您对其他地方的更改日志感到满意,则无需将其放在那里。在这种情况下,标记器和日期确实是最重要的。我唯一能想到的就是测试套件的某种批准印章。看看 git.git 的标签:它们都只是说“Git 1.7.3 rc1”;我们真正关心的是它们上面有 Junio Hamano 的名字。

然而,对于命名不太明显的标签,该消息可能会变得更加重要。我可以设想为单个用户/客户端标记特定的专用版本、一些重要的非版本里程碑,或者(如上所述)带有额外信息的候选版本。那么该消息就更有用了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么我应该关心轻量级标签与带注释的标签? 的相关文章

  • 如何仅对最新合并后的提交进行变基?

    考虑以下场景 我从master那里检查了一个分支 我做了一些承诺 我合并了更新的master 我做了更多的承诺 现在我想要从第 4 点开始变基提交 以便从第 2 点开始的提交不受影响 所以如果我最初有 1 2 x x x x x x x m
  • 测量大型源树中的“接近度”

    作为我之前提出的问题的一部分找到两个来源之间的最佳匹配 https stackoverflow com questions 13898659 finding what git commit some code spawned from 其中
  • 如何使用 Groovy 获取自上次成功构建以来 Jenkins 的提交信息?

    如何编写自定义 groovy 脚本以轻松操作自上次成功构建以来所有提交的数据 在 gradle maven 步骤之后添加新的构建步骤 gt 执行系统 groovy 脚本 适配代码 import com tikal jenkins plugi
  • git 忽略行结尾

    我知道已经有人问过类似的问题 但我仍然无法让它发挥作用 我的项目在使用不同操作系统的人之间共享 而我使用的是 OSX 另外 并不是每个人都使用 git 有时我最终不得不提交其他人的更改 有时 git 会突然说有待处理的更改 查看文件 它们看
  • 将各种提交合并为一而不合并

    是否可以加入各种提交 这是我的情况 我的应用程序在 OSX 10 6 和 10 7 中运行 我已经修复了 10 6 的一些内容 然后提交了 更改为 10 7 并再次修复修复程序 以便它们兼容 然后再次提交 然后返回到 10 6 并再次检查并
  • 如何使用 vim 作为“git log”编辑器?

    当我跑步时git log 编辑器到底是什么git log正在使用 Also 无论如何我可以使用吗vim作为我的默认编辑器git log 如果我想搜索 git 日志 最好的方法是什么 现在我正在做类似的事情 git log grep bla
  • Git 日志历史记录

    对于版本控制来说 重要的一件事是知道谁做了什么更改 如果某些内容发生了变化 而我不知道为什么要进行更改 我会查看历史并询问进行更改的人 当我探索 git 时 让我对这个功能有点紧张的一件事是它似乎很容易伪造 是什么阻止我将同事姓名 电子邮件
  • GIT 中的 Fastlane 应用程序文件?如何检索当前的 apple_id?

    我为我的 XCode 项目设置了 Fastlane 来实现构建自动化 至少 Fastfile 包含构建选项 应该位于 GIT 中 但我也很高兴 Appfile 团队标识符 也位于 GIT 中 主要问题 Appfile 应该包含我的 appl
  • Git 合并删除文件

    这是第二次发生这种情况 当我进行合并时 我后来意识到正在合并的分支中的一些文件不再位于正在合并的分支中 最新的例子是我们有一个功能分支 我一直在合并主开发分支中的更改 合并后我们丢失了很多文件 并且它们现在不存在于功能分支中 为什么会出现这
  • egit:设置gitignore忽略所有eclipse项目文件

    我在 github 上有一个项目 我想从中删除所有与 eclipse 相关的文件 并允许克隆它的人使用他们想要的任何 ide 这是该项目 https github com vedi0boy Archipelo https github co
  • git 工作目录中的更改拒绝恢复

    我的 git 工作目录中有五个文件git status显示为已修改 当我git diff他们 整个文件显示为已更改 我有core autocrlf true但似乎没有效果 当我试图从同事那里获取更改时 真正的问题出现了 修改 的文件之一会被
  • 从远程获取上个月在 git 分支上提交的文件列表

    我正在尝试获取上个月在 master 分支的 github 存储库上更改的所有文件的列表 我的本地克隆没有可以追溯到那么远的日志 因此当我运行以下命令时 git diff stat 1 month ago 我收到一条警告消息和一小部分更改
  • Git:如何维护项目的两个分支并仅合并共享数据?

    假设我有一个项目的两个分支 IMClient MacOS 和 IMClient Windows 它们的代码仅 比方说 一个目录 main 有所不同 所有其他目录都包含与系统无关的代码并且可以互换 有些工作人员在 Windows 版本上工作
  • 在功能分支上运行测试

    我有一个构建配置 其中包含连接到 git 分支的测试 VCS 根dev 3 个构建步骤和 1 个触发器 这些是我的构建步骤 构建测试 运行测试 构建和部署 我想为分支运行所有这些构建步骤dev但只有其中两个 构建和运行测试 用于分支匹配fe
  • Windows 上的 git 忽略文件名大小写更改 [重复]

    这个问题在这里已经有答案了 我有一个reactjs应用程序 我正在将所有文件名标准化为小写以符合Nodejs 最佳实践 https devcenter heroku com articles node best practices stic
  • git update-index --no-assume-unchanged 不起作用

    我设置了assume unchanged咬了几个文件 现在我想取消它们 但这不起作用 gt git update index no assume unchanged Gemfile gt git ls files v grep Gemfil
  • GitHub - 指定时间的存储库状态

    我是使用 git 版本控制工具的初学者 我想在指定时间 例如 2013 年 10 月 5 日 下载存储库状态 文件 我怎样才能做到这一点 截至 2019 年 5 月 不确定何时引入 您可以简单地按以下格式添加日期 HEAD 2019 04
  • 警告:引用名称“xxx”不明确

    我想知道为什么我收到 refname is ambigeous 的警告 这是否意味着名称以该字符串开头的分支不超过两个 但这里没有 Thanks git checkout B03799 warning refname B03799 is a
  • Git rebase --继续而不打开编辑器

    调用时git rebase continue在正常的变基冲突之后 编辑器 GIT EDITOR 打开并要求修改提交消息 因为提交消息可能包含前导 所以这可能会失败 export GIT EDITOR true git rebase cont
  • 将主分支的提交合并到另一个分支,但不合并两个分支

    我有 git 存储库和一个主分支 我决定开发新功能 并且创建了新分支 new branch 我已经在 new branch 中创建了一些提交 但我还没有完成新功能 我决定修复 master 分支中的一些错误 因此我切换到 master 分支

随机推荐

  • 在给定缩放级别的情况下,将长/纬度转换为像素 x/y

    我正在尝试在 ASP NET 中开发一个页面 该页面将充当 Google 地图的图块服务器 它将从数据库中提取纬度 经度点的集合 然后在给定缩放级别 默认值 15 的情况下将它们渲染为透明背景上的小红点 然后它将以 GIF 类型图像的形式返
  • 无法从 Eclipse 建立到 Hive 的 JDBC 连接

    我正在尝试建立到 Hive 的 JDBC 连接 以便可以从 Eclipse 查看和创建表以及查询 Hive 表 我使用 HiveClient 示例代码 https cwiki apache org confluence display Hi
  • 面向 C++ 开发人员的 C# 书籍或网站 [已关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我正在寻找可以帮助 C 开
  • ASP.NET MVC 控制器动作设计

    我真的很喜欢 ASP NET MVC 的工作方式 我很想在所有新的 Web 项目中实现它 但前几天我在原型中遇到了障碍 我真的没有找到一个好的解决方案 所以我问你 你会如何设计一个 MVC 应用程序这不符合典型的 REST 模式 例如 我正
  • Firebase 存储桶不工作

    我想尝试最新的 Firebase 现在有存储 但收到此错误 无法连接到服务器 请在几分钟后重试 重试 当我进入新控制台 存储 文件 时 我该如何解决这个问题 谢谢 有一个已知的错误 如果您登录多个谷歌帐户 帐户切换将无法正确完成 并且会造成
  • 使用属性名称变量创建对象[重复]

    这个问题在这里已经有答案了 是否可以在对象文字属性中使用变量名来创建对象 Example function createJSON propertyName return propertyName Value var myObject cre
  • 从 Google App Engine 迁移有多困难?

    我正在考虑制作一个 最初 小型 Web 应用程序 它最终会有增长的潜力 综合考虑 Google App Engine 似乎是一个非常有吸引力的选择 比如说 用户群和复杂性不断增长 出于某种或其他原因 我需要将 GAE 抛在后面 移民出去会有
  • git SHA 依赖什么?

    我想知道 git SHA 依赖的所有参数是什么 我猜测除了提交的内容之外 还会有一些其他参数 例如时间戳等 SHA 的构建取决于这些参数 我对它所依赖的所有此类参数感兴趣 我还对所有这些参数都相同或强制相同的情况感兴趣 从而导致两个人所做的
  • Spring Security 警告:AuthorityUtils 类是抽象的?

    自从迁移到 Spring Security 3 2 5 RELEASE 和 Spring 4 1 1 RELEASE 以来 我们在 Eclipse Luna 中收到了 Spring Bean 验证警告 确切的警告是 Class org sp
  • 如何使用 C# 在 Windows 8 中设置默认浏览器?

    在 Windows 8 XP VISTA WIN7 之前 我们都可以轻松地做到这一点 只需对注册表进行少量更改即可完成 对于 Windows 8 这就没那么容易了 我还没弄清楚如何做到 Windows 8 也几乎没有下面提到的需要更改的注册
  • 时间是否介于其他两个时间之间?

    例如 我想要做的是在周三晚上 8 00 到凌晨 2 00 之间更改我的网站徽标 从技术上讲 凌晨 2 00 是星期四早上 那么我如何检查当前时间是否在周三晚上 8 00 到凌晨 2 00 之间 嗯 更简单 current time strt
  • 使用 Alamofire (Swift 2) 从 JSON 填充表格视图单元格

    我有以下代码 import UIKit import Alamofire class CheHappyTableViewController UITableViewController NSURLConnectionDelegate var
  • 在java中,我如何处理CompletableFutures并获得第一个完成的期望结果?

    通常 对于 CompletableFuture 我会在结果可用时调用 thenApply 或其他方法来执行某些操作 但是 我现在遇到的情况是 我想处理结果 直到收到阳性结果 然后忽略所有进一步的结果 如果我只想获取第一个可用结果 我可以使用
  • Spark Dataframes-按键减少

    假设我有一个像这样的数据结构 其中 ts 是某个时间戳 case class Record ts Long id Int value Int 给定大量这些记录 我希望最终得到每个 id 具有最高时间戳的记录 使用 RDD api 我认为以下
  • 构建 WAR 包时 Maven 错误(缺少 web.xml..?)

    执行时mvn install 我收到以下错误 组装 WAR 时出错 webxml 属性 是必需的 或预先存在的 WEB INF web xml 如果在更新中执行 模式 我的Web应用程序结构树是这样的 my app pom xml src
  • Spring AMQP RabbitMq 中的计划/延迟消息传递

    我正在努力寻找 Spring AMQP Rabbit MQ 中计划 延迟消息的方法 经过大量搜索后 我仍然无法在 Spring AMQP 中做到这一点 有人可以告诉我该怎么做吗x delay在 Spring AMQP 中 如果消费者端发生一
  • 有没有办法在 C# 中比较两个列表[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我通过以下方式比较两个列表 var listOne new List
  • 我应该在 Struts2 视图层中检索数据库记录吗?

    我有一个编辑页面 我想在其中检索subjects and levels从数据库中显示并显示为用户编辑的选择选项course 当表单提交时 它会发出一个新的请求 用户输入被捕获课程Bean带有 XML 验证 当XML验证失败时 它将转发课程B
  • 是否有任何 C# 框架或代码来解析 *blg 性能计数器日志文件?

    任务不是在我的 NET 应用程序中收集性能计数器数据 而是打开已经准备好的二进制日志文件 blg 我知道 MS SQL Profiler NET 应用程序 可以解析二进制日志 据我所知 blg 文件格式似乎是专有的 并且规范并未公开发布 也
  • 为什么我应该关心轻量级标签与带注释的标签?

    去年 我从 Subversion 转向 Git 作为我的日常 VCS 并且仍在努力掌握 Git think 的精髓 最近困扰我的是 轻量级 与带注释和签名的标签 似乎人们普遍认为 在所有实际用途中 带注释的标签都优于轻量级标签 但我找到的解