Git中的分支名称中使用反斜杠字符Git中的分支名称中使用反斜杠字符(Using the slash

2019-05-09 08:18发布

我敢肯定,我在一个流行的Git项目的分支有一个像“功能/ XYZ”的模式什么地方看到过。

然而,当我尝试创建一个反斜杠字符的一个分支,我得到一个错误:

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

对于同样的问题(我的初步尝试):

$ git checkout -b labs/feature

一个人如何创造的Git与反斜杠字符的一个分支?

Answer 1:

你肯定分支labs已经不存在(在这个线程 )?

你不能同时拥有一个文件,并且具有相同名称的目录。

你试图让GIT中基本上是这样做的:

 % cd .git/refs/heads % ls -l total 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 labs mkdir: cannot create directory 'labs': File exists 

你得到“无法创建目录”错误的等价物。
当你在它斜线的一个分支,它被存储为下一个目录层次结构.git/refs/heads



Answer 2:

它可以有层次分支名称(分公司名称以斜线)。 例如,在我的仓库我有这样的分支(ES)。 有一点需要注意的是,你不能有两个转移“富”和仓库分支“富/酒吧”。

你的问题是不是与名称斜线创建分支。

$ git branch foo/bar
error: unable to resolve reference refs/heads/labs/feature: Not a directory
fatal: Failed to lock ref for update: Not a directory

关于“实验室/功能”分支,而不是“富/酒吧”上述错误消息说话(除非是copy'n'paste一个错误,即您编辑会议的部分)。 什么是结果git branchgit rev-parse --symbolic-full-name HEAD



Answer 3:

如果你已经有了一个基本名称的分支有时会发生问题。

我尝试这样做:

git checkout -b features/aName origin/features/aName

不幸的是,我已经有一个分支叫features ,和我的问题提问者除外。

卸下分支features解决了这个问题,上面的命令工作。



Answer 4:

就我而言,我忘了,已经有一个未使用的labs分支机构。 删除它解决了这个问题:

git branch -d labs
git checkout -b labs/feature

说明:

每个名字只能是母公司分支机构分公司正常的,不能同时使用。 这就是为什么分支labs labs/feature不能同时都存在。

这样做的原因行为是分支存储在文件系统中有你也不能有一个文件labs和目录labs在同一水平。



Answer 5:

我可能是错的,但我认为斜线才出现的分支名称时,他们涉及到远程回购,例如origin/master



文章来源: Using the slash character in Git branch name
标签: git branch