При попытке сделать pull git ругается unable to update local ref

git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks fetch --tags origin
error: cannot lock ref 'refs/remotes/origin/fix/china': 'refs/remotes/origin/fix/china/enable-blablabla' exists; cannot create 'refs/remotes/origin/fix/china'
From https://github.blablabla.net/blablabla/blablabla
 ! [new branch]              fix/china  -> origin/fix/china  (unable to update local ref)

Completed with errors, see above.

Как это можно исправить?

Пробовал:

$ git gc --prune=now

$ git remote prune origin

Но не помогло


Ответы (1 шт):

Автор решения: Герман Борисов

Создание локальной копии ссылки (ветки или тэга) refs/remotes/origin/fix/china/enable-blablabla при выполнении fetch (и pull) сопровождается созданием локального файла .git/refs/remotes/origin/fix/china/enable-blablabla, соответственно все / превращаются в разделители каталогов. То есть у вас есть, в том числе, каталог .git/refs/remotes/origin/fix/china, и, соответственно, создать файл .git/refs/remotes/origin/fix/china уже невозможно, это имя занято каталогом.

Переименовывайте одну из веток в репозитории, из которого делаете fetch

→ Ссылка