【问题标题】:Name conflicts with refs/heads/release when trying to create release/ branch [duplicate]尝试创建发布/分支时,名称与 refs/heads/release 冲突[重复]
【发布时间】:2020-02-19 14:43:06
【问题描述】:

我正在尝试在 Azure DevOps 存储库中创建 release/0.1.0 分支,但收到错误 Name conflicts with refs/heads/release:

这取决于我要创建的分支,
当我尝试创建 feature/0.1.0 分支时,它也可以正常工作

这是权限问题的关键吗(我不是此 Azure DevOps 项目的管理员)?

【问题讨论】:

标签: git azure-devops


【解决方案1】:

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

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

观察:

git status

On branch master
nothing to commit, working tree clean

git checkout -b master/foo

fatal: cannot lock ref 'refs/heads/master/foo': 'refs/heads/master' exists; 
cannot create 'refs/heads/master/foo'

【讨论】:

    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-24
      • 2019-10-26
      • 2017-09-02
      • 1970-01-01
      • 1970-01-01
      • 2020-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多