如果我已经有一个名为"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
,很容易 - 在$GIT_DIR/refs
中创建文件foo
,没有什么特别需要想象的。foo/bar
,情况要稍微复杂一些:现在会创建一个名为foo
的文件夹,其中只有一个文件-bar
(同样具有哈希提交)。引用文档的话:
问题是,不可能有两个具有相同名称的对象-文件和文件夹。因此,如果您已经有了[reference names] can include slash / for hierarchical (directory) grouping
1.16.0
标签,则无法使用1.16.0/anything
。一个明显的解决方法是将初始标签转换为像1.16.0/0.0.1
这样的内容,然后继续执行您最初的意图。或者您可以用-
或_
替换斜杠。