Bitbucket: почему я не могу создать ветку master/x

(Это делается в 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://[email protected]/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://[email protected]/x/x.git'



Completed with errors, see above.

person Freddy Bonda    schedule 17.01.2019    source источник


Ответы (1)


Внутри ветки хранятся в папке .git/refs/heads в виде файлов. Если имя ветки содержит разделитель каталогов, аналогичный каталог создается внутри heads. Файловая система на удаленном компьютере не позволяет вам иметь файл с именем master и папку с именем master по одному и тому же пути, поэтому вы получаете сообщение об ошибке.

Вам нужно использовать что-то другое, кроме master, в качестве префикса для ваших ветвей.

person 1615903    schedule 17.01.2019
comment
Или, что то же самое, удалите имя master как имя ветки. Стоит отметить: Git не всегда хранит имена веток в виде файлов внутри каталогов. Но он применяет правила как если бы он это делал, поскольку он иногда это делает и не хочет иметь дело с какими-либо проблемами при преобразовании из плоского файла packed-refs в каталог метод на основе. - person torek; 17.01.2019