如何使用git描述匹配隐藏的ref
似乎是一个很好的匹配版本号的解决方案,但我的场景有点不同 我要为生成的版本号创建隐藏引用(因此默认情况下,它们不会传递给其他客户端)。我不想让客户在他们的回迁中看到一堆版本混乱 问题是,-match仅适用于标记,即使您使用--all标志 例如: git更新参考文件/_v.master.0.1 c2897c8338e02b99644640f3afb829c04cb48439 这将创建隐藏的ref git描述——所有c2897c8338e02b99644640f3afb829c04cb48439如何使用git描述匹配隐藏的ref,git,Git,似乎是一个很好的匹配版本号的解决方案,但我的场景有点不同 我要为生成的版本号创建隐藏引用(因此默认情况下,它们不会传递给其他客户端)。我不想让客户在他们的回迁中看到一堆版本混乱 问题是,-match仅适用于标记,即使您使用--all标志 例如: git更新参考文件/_v.master.0.1 c2897c8338e02b99644640f3afb829c04cb48439 这将创建隐藏的ref git描述——所有c2897c8338e02b99644640f3afb829c04cb48439 _
_v、 master.0.1[显示此项] 但这并没有返回任何结果: git描述——匹配——所有c2897c8338e02b99644640f3afb829c04cb48439
致命:未找到任何名称,无法描述任何内容
我在“匹配”中看到“只考虑与给定的GLUB(7)模式匹配的标签”,但这似乎是跛行的,匹配应该适用于任何RF类型,假设其他修饰符(-ALL -标签等)限制了REF类型的范围。 我还有别的办法吗?我想到的一种方法是在一个客户机上创建标记,并将它们(在推送和获取时)映射到源的隐藏引用,但这似乎需要做很多额外的工作。如果不是客户端,我上面提到的ref匹配是否可以从API获得
提前谢谢 您必须使用Git 2.14.x/2.15(2017年第4季度)检查这一点 “
git descripe--match
”已被教导如何与
“--all
”选项
参见(2017年9月20日)作者。(于2017年9月29日被合并)
描述
:教匹配
处理分支和远程
当git descripe使用--match
时,它基本上只匹配标记
即使指定了--all
参数,也将忽略该参数
还可以通过匹配分支名称和$remote\u name/$remote\u branch\u name
来修复它,
对于远程跟踪引用,使用指定的模式。相应地更新文档并添加测试 它还涉及消极模式: 例如,假设您希望找到第一个正式发布标签 包含某个提交的。如果我们假设官方发布标签 格式为“
v*
”,预发布候选文件在其版本中包括“*rc*
”
名称,我们现在可以找到引入提交的第一个发布标签
abcdef
:
请注意,Git 2.16.x/2.17(2018年第1季度)将恢复“
Git descripe--all
”的正确输出
参见(2017年12月11日)作者。(于2018年1月23日被合并)
描述
:在描述带有嵌入名称的标记时,在“标记/
”前面加上前缀
“git descripe
”命令的手册页解释了预期的
使用--all
选项时输出,即完整参考路径为
显示,包括标题/
或标记/
前缀
什么时候教git描述
为了在输出之前验证带注释的标记名”,2008年2月28日,Git v1.5.5-rc0)使Git更喜欢带注释标记的嵌入式名称,它意外地更改了输出
设置--all
标志时的格式,仅打印标签的名称
没有前缀
检查是否指定了--all
,并为此重新添加“标记/
”前缀
修复回归的特殊情况
当“”发现标记名为
A
的带注释标记是解释提交C
的最佳名称,并且标记存储在refs/tags
层次结构中的一个“error
”位置时,例如refs/tags/B
,该命令发出警告消息,但使用了A
(不是B
)描述C
如果
C
正好位于标记处,则描述输出将为“A
”,但“不等于”
Git 2.27(2020年第2季度)更改了命令的行为,使用了“长”形式,即A-0-gOBJECTNAME
,这是由rev parse
正确解释的
参见(2020年2月20日)作者。(于2020年3月27日合并) :基于定位错误的标记强制使用名称的长格式 帮助人:Matheus Tavares
帮助人:杰夫·金 带注释的标记有两个名称:
- 它位于
层次结构和refs/tags
- 记录在对象本身的“
”字段中的标记名李>标记
git descripe
”的输出应该可用作对象名,以命名给予“git descripe
”命令的确切提交。
当两个名称不同时,在描述此类标记直接指向的提交时,使用标记名会破坏此属性
作为“v1.0
”的带注释标记Bob可能位于ref
层次结构中的“refs/tags/v1.0-Bob
”,并且从“”输出的内容可能是“v1.0
”,但可能在“refs/tags/v1.0
”本地没有任何标记,或者可能有另一个标记指向不同的对象
请注意,如果所描述的提交不是由这样一个错误定位的标记直接指向的,那么这不会是一个问题
在上一段的示例中,描述其父级为v1.0-bob
的提交将导致“v1.0git describe --contains --match="v*" --exclude="*rc*" abcd