尝试创建发布/分支时,名称与 refs/heads/release 冲突

kag*_*kij 3 git azure-devops

我正在尝试release/0.1.0在 Azure DevOps 存储库中创建分支,但出现错误Name conflicts with refs/heads/release
在此处输入图片说明

根据我尝试创建的分支无关紧要,
当我尝试创建feature/0.1.0分支时它也可以正常工作

它是权限问题的王者吗(我不是这个 Azure DevOps 项目的管理员)?

Phi*_*ppe 6

由于 Git 如何将引用存储为.git/refs/heads文件夹中的文件(和文件夹树)而导致 git 限制。

当您尝试创建分支时release/0.1.0,Git 会尝试创建文件夹以在其中release创建一个名为的文件。0.1.0

因为已经有一个release与已创建的分支对应的文件命名,所以 Git 无法创建同名的文件夹(文件系统不允许)。

由于此限制与 git 如何通过文件系统处理 ref 相关,因此 git 不允许这种情况,并在您尝试创建它时验证这种类型的情况(即使引用已打包)。


Dan*_*ann 5

这纯粹是 Git 限制。您不能在另一个分支“下”创建分支。

你可以创建releases/0.1.0. 但是因为已经有一个release分支,你不能在它下面放一个新的分支。

观察:

git status

On branch master
nothing to commit, working tree clean
Run Code Online (Sandbox Code Playgroud)

git checkout -b master/foo

fatal: cannot lock ref 'refs/heads/master/foo': 'refs/heads/master' exists; 
cannot create 'refs/heads/master/foo'
Run Code Online (Sandbox Code Playgroud)