如何在名称中使用正斜杠创建标记

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的内容,然后继续执行您的原始意图。或者你可以用-_替换斜线。

以上是关于如何在名称中使用正斜杠创建标记的主要内容,如果未能解决你的问题,请参考以下文章

赵雅智_Swift_swift凝视

Vscode在使用变量之前转义斜杠

你如何 grep 一个包含斜杠的字符串?

如何使用Flipkart Seller GET LISTING API在SKU中获得带有正斜杠(/)的有效列表?

如何使用正斜杠在 CSS 中进行注释

在正斜杠之后在 url 中使用波浪号