(这是在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.
答案 0 :(得分:3)
内部,分支作为文件存储在.git/refs/heads
文件夹中。如果分支名称包含目录分隔符,则会在heads
内部创建一个类似的目录。遥控器上的文件系统使您无法在同一路径上拥有名为master
的文件和名为master
的文件夹,因此这就是为什么会出错的原因。
您需要使用master
以外的其他名称作为分支的前缀。