(这是在 SourceTree 中完成的)
我正在尝试创建一些分支(master/dev,, ) master/demo,master/live但这无法推送。例如,当我尝试推送时,master/demo它master/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)
在内部,分支作为文件存储在.git/refs/heads文件夹中。如果分支名称包含目录分隔符,则会在内部创建类似的目录heads。远程上的文件系统阻止您在同一路径上调用文件master和文件夹master,因此这就是您收到错误的原因。
您需要使用其他内容作为master分支的前缀。