在Git分支名称中使用斜杠字符

在Git分支名称中使用斜杠字符

我很确定我在一个流行的Git项目中看到某个地方的分支有一个像“feature / xyz”这样的模式。

但是当我尝试使用斜杠字符创建一个分支时,我收到一个错误:

$ git branch labs/featureerror: unable to resolve reference refs/heads/labs/feature: Not a directoryfatal: Failed to lock ref for update: Not a directory

同样的问题(我最初的尝试):

$ git checkout -b labs/feature

如何使用斜杠字符在Git中创建分支?


DIEA
浏览 3119回答 3
3回答

喵喔喔

你确定分支labs还不存在(如在这个帖子中)?您不能同时拥有文件和具有相同名称的目录。你试图让git基本上做到这一点:% cd .git/refs/heads% ls -ltotal 0-rw-rw-r-- 1 jhe jhe 41 2009-11-14 23:51 labs-rw-rw-r-- 1 jhe jhe 41 2009-11-14 23:51 master% mkdir labsmkdir: cannot create directory 'labs': File exists您将获得相当于“无法创建目录”的错误。当你有一个带有斜杠的分支时,它会被存储为目录层次结构.git/refs/heads。

侃侃尔雅

可以使用分层分支名称(带有斜杠的分支名称)。例如,在我的存储库中,我有这样的分支。需要注意的是,您不能在存储库中同时拥有分支'foo'和分支'foo / bar'。您的问题不在于使用名称中的斜杠创建分支。$ git branch foo / bar错误:无法解析引用refs / heads / labs / feature:不是目录致命:无法锁定ref以进行更新:不是目录上面的错误消息是关于'labs / feature'分支,而不是'foo / bar'(除非它是copy'n'paste中的错误,即你编辑了部分会话)。什么是结果git branch还是git rev-parse --symbolic-full-name HEAD?

犯罪嫌疑人X

如果您已经拥有基本名称的分支,则有时会出现此问题。我试过这个:git checkout -b features/aName origin/features/aName不幸的是,我已经有了一个名为的分支features,我得到了提问者的例外。删除分支features解决了问题,上面的命令工作。
打开App,查看更多内容
随时随地看视频慕课网APP