我敢肯定,我在一个流行的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与反斜杠字符的一个分支?
你肯定分支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
。
它可以有层次分支名称(分公司名称以斜线)。 例如,在我的仓库我有这样的分支(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 branch
或git rev-parse --symbolic-full-name HEAD
?
如果你已经有了一个基本名称的分支有时会发生问题。
我尝试这样做:
git checkout -b features/aName origin/features/aName
不幸的是,我已经有一个分支叫features
,和我的问题提问者除外。
卸下分支features
解决了这个问题,上面的命令工作。
就我而言,我忘了,已经有一个未使用的labs
分支机构。 删除它解决了这个问题:
git branch -d labs
git checkout -b labs/feature
说明:
每个名字只能是母公司分支机构或分公司正常的,不能同时使用。 这就是为什么分支labs
和 labs/feature
不能同时都存在。
这样做的原因行为是分支存储在文件系统中有你也不能有一个文件labs
和目录labs
在同一水平。
我可能是错的,但我认为斜线才出现的分支名称时,他们涉及到远程回购,例如origin/master
。