Git标签,为什么在remotes中使用重复的标签?
上面是git ls remote--tags的输出,它列出了我的集中存储库(bare)中的标记 对于Prod_Release_2.3,我只需要一个标签,我不知道这个Git标签,为什么在remotes中使用重复的标签?,git,Git,上面是git ls remote--tags的输出,它列出了我的集中存储库(bare)中的标记 对于Prod_Release_2.3,我只需要一个标签,我不知道这个Prod_Release_2.3^{}来自哪里 在CentralReport1中,Prod_Release_2.3的id与CentralReport2的Prod_Release_2.3的id相同,反之亦然 在我的本地存储库中只有一个标签Prod\u Release\u 2.3 有什么不对劲吗?还是这是故意的 中央存储库托管在Ubunt
Prod_Release_2.3^{}
来自哪里
在CentralReport1中,Prod_Release_2.3的id与CentralReport2的Prod_Release_2.3的id相同,反之亦然
在我的本地存储库中只有一个标签Prod\u Release\u 2.3
有什么不对劲吗?还是这是故意的
中央存储库托管在Ubuntu上,我在我的开发机器中使用msysgit。这不是标记,而是指向标记指向的提交的指针。您可以在中了解更多信息。Git中有两种类型的标记:“轻量级”和“带注释” 轻量级标记只是
refs/tags/
命名空间中指向其他对象的引用。它们是使用git标记[object]
创建的,没有-a
、-m
、-F
、-s
或-u
带注释的标记实际上是一种单独的Git对象(a),它指向其他对象。标记对象存储提交者信息、作者信息、消息(类似于),它们指向任何单个其他对象(与提交对象不同,提交对象只指向一个或零个或多个其他提交对象)
当您有一个带注释的标记时,通常也会有一个指向它的ref。从技术上讲,这个ref本身就是一个“轻量级”标签,但我们通常不会单独描述它们
通常,这两种标记都指向提交,但它们可以指向任何类型的Git对象(标记、提交、树或blob)。has指向一个包含维护者的GPG公钥的blob。还有,它指向一棵树。虽然技术上允许使用指向非提交对象的标记,但它们可能会破坏或混淆某些工具,因此应尽可能避免使用这些标记
语法
^{}
后缀(如中所述)是标记解除引用语法(有时称为“剥离标记”语法)。对于标记对象,它计算为标记对象指向的第一个非标记对象(它将递归地遵循标记对象链,直到找到非标记对象)。对于非标记对象,它的含义与没有^{}
后缀的含义相同
中央存储库中的refs/tags/Prod_Release_2.3
ref指向名为30bd19ef190cf664356c715b56044ce739f07468的标记对象
该标记对象最终指向另一个名为4ae15ee04c2c41bfc7945e66f4effc746d52baec的非标记对象(可能是提交)
因此,refs/tags/Prod_Release_2.3^{}
解析为4ae15ee04c2c41bfc7945e66f4effc746d52baec
如果您在命令行中输入它。看起来您有一个名称不正确的标记。@adymitruk:git ls remote--tags origin
在我的git.git存储库中打印标记并指向每个标记的提交(因为它们都是真正的标记对象)。另一个好地方是从git社区手册中学习-标记对象与其他对象一起被描述。简而言之,推送的每个带注释的标记都会创建一个初始标记引用和第二个引用,该引用使用指向第一个标记的^{}语法。轻量级标记只创建一个引用。@bryanbraun:whatever^{}
名称不作为ref(在refs/
命名空间下的条目)存在^{}
只是一个后缀,可以附加到任何修订名(ref name,(缩写)object hash或其他计算修订名等)以“剥离”标记对象,直到找到非标记对象。假设要标记的提交C已经被推送,那么推送一个新的带注释的标记将推送一个标记对象(指向C)和一个新的引用(指向新的标记对象),而轻量级标记将只推送新的引用(指向C)。尽管ls remote
显示了这些^{}
psuedo引用,它们实际上并不作为参照物存在;您可以通过(例如)比较git show ref--tags
(实际标记参考)的输出与git ls remote--tags的输出来验证这一点。
(“有线协议”报告的内容)。由于技术原因,“剥皮标签”包含在“导线协议”中,但它们不作为实际参考存在。但是是的,你可以把^{}
看作是“引用”(因为它是一种命名特定对象的方式),只要你不使用这个术语来表示“在/refs
命名空间下的条目”。你能有两个相同名称和描述的标记指向同一个提交吗?
30bd19ef190cf664356c715b56044ce739f07468 refs/tags/Prod_Release_2.3
4ae15ee04c2c41bfc7945e66f4effc746d52baec refs/tags/Prod_Release_2.3^{}