我正在尝试release/0.1.0
在 Azure DevOps 存储库中创建分支,但出现错误Name conflicts with refs/heads/release
:
根据我尝试创建的分支无关紧要,
当我尝试创建feature/0.1.0
分支时它也可以正常工作
它是权限问题的王者吗(我不是这个 Azure DevOps 项目的管理员)?
由于 Git 如何将引用存储为.git/refs/heads
文件夹中的文件(和文件夹树)而导致 git 限制。
当您尝试创建分支时release/0.1.0
,Git 会尝试创建文件夹以在其中release
创建一个名为的文件。0.1.0
因为已经有一个release
与已创建的分支对应的文件命名,所以 Git 无法创建同名的文件夹(文件系统不允许)。
由于此限制与 git 如何通过文件系统处理 ref 相关,因此 git 不允许这种情况,并在您尝试创建它时验证这种类型的情况(即使引用已打包)。
这纯粹是 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)