Bitbucket:为什么我无法创建 master/x 分支

Fre*_*nda 2 git bitbucket

(这是在 SourceTree 中完成的)

我正在尝试创建一些分支(master/dev,, ) master/demomaster/live但这无法推送。例如,当我尝试推送时,master/demomaster/demo会给出以下错误:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags --set-upstream origin master/demo:master/demo
fatal: HttpRequestException encountered.
   An error occurred while sending the request.

POST git-receive-pack (206 bytes)
remote: error: cannot lock ref 'refs/heads/master/demo': 'refs/heads/master' exists; cannot create 'refs/heads/master/demo'        
Pushing to https://x@bitbucket.org/x/x.git
To https://bitbucket.org/x/x.git
 ! [remote rejected] master/demo -> master/demo (failed to update ref)
error: failed to push some refs to 'https://x@bitbucket.org/x/x.git'



Completed with errors, see above.
Run Code Online (Sandbox Code Playgroud)

161*_*903 5

在内部,分支作为文件存储在.git/refs/heads文件夹中。如果分支名称包含目录分隔符,则会在内部创建类似的目录heads。远程上的文件系统阻止您在同一路径上调用文件master和文件夹master,因此这就是您收到错误的原因。

您需要使用其他内容作为master分支的前缀。

  • 或者,等效地,删除名称“master”作为分支名称。值得指出的是:Git 并不总是将分支名称存储为目录中的文件。但它“就像”执行了规则,因为当它从平面“packed-refs”文件转换为基于目录的方法时,它“有时”确实并且不想处理任何问题。 (2认同)