如何在名称中使用正斜杠创建标记
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在名称中使用正斜杠创建标记相关的知识,希望对你有一定的参考价值。
当我已经拥有类似外观的git标签时,有没有办法在其名称中创建带正斜杠的git标签?
假设我有“1.16.0”标签,我想创建“1.16.0 / 1.0.0”标签:
$ git tag "1.16.0/1.0.0"
error: 'refs/tags/1.16.0' exists; cannot create 'refs/tags/1.16.0/1.0.0'
fatal: refs/tags/1.16.0/1.0.0: cannot lock the ref
答案
这是不可能的。请参阅标记的名称(实际上,任何引用;与分支相同)被视为文件系统对象的名称,在存储库的$GIT_DIR/refs
文件夹中创建。此对象存储标记附加到的哈希提交。
随着标签foo
,它很容易 - 文件foo
是在$GIT_DIR/refs
创建的,没有什么特别值得怀疑的。
然而,使用标签foo/bar
,它有点复杂:现在创建文件夹foo
,只有一个文件 - bar
(再次,使用哈希提交)。引用the docs:
[引用名称]可以包括斜杠/用于分层(目录)分组
问题是,不可能有两个具有相同名称的对象 - 文件和文件夹。因此,如果您已经有1.16.0
标签,您将无法使用1.16.0/anything
。一个明显的解决方案是将初始标记转换为类似1.16.0/0.0.1
的内容,然后继续执行您的原始意图。或者你可以用-
或_
替换斜线。
以上是关于如何在名称中使用正斜杠创建标记的主要内容,如果未能解决你的问题,请参考以下文章