阅读Gerrit docs,它说:
[...] users should be really knowledgeable about git,
for instance knowing why tags never should be removed from a server
它没有详细说明这个陈述。我没有看到任何问题,也无法找到相关信息。
那么,为什么永远不应该从服务器中删除标签?
答案 0 :(得分:3)
如果你按annotated tags,当项目达到历史值得记住的稳定发布点时,它们应该代表"标签。"
由于Gerrit中的项目所有者有权删除标记,因此文档会添加该警告,以便依赖于所述标记的其他用户在标记要更改时(或者要更改)不会感到惊讶(或被正确警告)被删除)。
请参阅" Enforcing site wide access policies"
部分通过授予组
refs/*
上的所有者访问权限,Gerrit管理员可以将维护该项目的访问权限的责任委派给该组。在企业部署中,通常需要实施一些访问策略。一个例子可能是没有人可以更新或删除标签,甚至不是项目所有者。
ALLOW
和DENY
规则不足以实现此目的,因为项目所有者可以自行授予任何访问权限,从而有效地覆盖"所有项目&#的任何继承访问权限34;或其他一些共同的父项目。
这就是Gerrit提出的原因:
确保没有人可以更新或删除标签
此要求在企业部署中非常常见,必须保证构建的可重复性。为了实现这一目标,我们在#34; All-Projects":
中阻止匿名用户的推送权限
[access "refs/tags/*"]
push = block group Anonymous Users
create = group Project Owners
pushTag = group Project Owners
答案 1 :(得分:2)
在http://git-scm.com/docs/git-tag底部"重新标记"
的底部解释了为什么您不应该删除远程标记?简而言之:如果协作者已经提取了一次标记,则在您更改标记后不会对其进行更新。因此,标记变得相当无用,因为它表示远程仓库中的提交A
,但它可能代表一些开发人员的回购中的提交B