Git 提交对标签的引用

Git commit reference over tags

我们使用 Git 进行源代码版本控制,使用 Bamboo 进行持续集成。我们组织中很少有项目在将版本发布到生产环境时不在 Git 中标记代码。当被问到这个问题时,他们说特定构建中的提交将告诉进入生产系统的代码。

我的问题是,让 Bamboo 构建指向特定提交是否足够。或者我们有标记的其他优势,如果不标记,我们将无法获得这些优势。

我知道的一件事是构建可能不会保留在 Bamboo 中(清除),将来我可能不会在某个时间点获得生产中的源代码快照。

标签只不过是给特定提交的易于理解的名称。我能想到的使用它们的主要优点是它使 git 存储库具有自描述性。您不必在 git 和 bamboo 之间来回切换,就可以正确了解哪个版本。如果您的 bamboo 服务器宕机(例如,进行定期维护)或者您想要切换到不同的 CI 系统,这一点尤其重要。

所以我会在标签之后再回答这个问题。

但是对于您最初的问题,标签是对提交中特定时间的不可变引用。正如 Mureinik 所说,标签只是对 git 存储库中特定哈希的简单引用。

但是对于你的第二点,Bamboo 有一个内置的 Expiry,它也有一个异常字段。任何发布都可以这样标记,并在到期的例外列表中进行标记(例外列表可以是正则表达式,即 release/1.0.0 匹配发布。*)