Git ошибка при Git pull (не удалось обновить локальную ссылку)
У меня есть только мастер ветвления, и я получаю эту ошибку каждый раз, когда я пытаюсь "git pull":
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
и когда я делаю "git pull origin master", я получаю:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
Я искал, но не мог найти, почему
Ответы
Ответ 1
Моя команда и я столкнулись с этой ошибкой, не в состоянии обновить локальную ссылку, когда вы тянете в SourceTree.
Мы использовали:
git gc --prune=now
Это удаляет любые повторяющиеся ссылочные объекты, которые должны устранить проблему.
Вот несколько ссылок, где вы можете узнать больше о ссылках git и обрезке:
git подсказка недели
git -prune documentation
git ссылки
Ответ 2
Я решил следующее:
git remote prune origin
Ответ 3
Я обнаружил то же сообщение об ошибке, пытающееся вырваться из Bitbuck Repo в мою локальную копию. Существует также только один Branche Master и команда git pull origin master
приводят к этому сообщению об ошибке
From https://bitbucket.org/xxx
* branch master -> FETCH_HEAD
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
Решение следующим образом
-
git reflog
найдите номер последней фиксации
-
git reset --hard <numnber>
reset до последнего фиксации
-
git pull origin master
снова тянуть без ошибок
Ответ 4
Убедитесь, что пользователь, выполняющий git pull
, является тем же пользователем, который создал репозиторий. Разрешения для файлов неверны.
Ответ 5
rm .git/refs/remotes/origin/master
Это работает для меня!
Ответ 6
Попробуйте использовать эту команду в корневой папке вашего репозитория git:
rm .git/logs/refs/remotes/origin/master
Ответ 7
Это случилось со мной в OSX, где я использую файловую систему, не учитывающую регистр. Как-то другой разработчик нажал ветку с тем же именем, но в другом случае: My-Branch
vs My-Branch
.
Я уже проверил My-Branch
и получил ошибку "не удалось обновить локальную ссылку", когда я сделал pull, возможно, потому что файловая система думает My-Branch
== My-Branch
.
Поскольку мы используем Github, я мог бы решить эту проблему, удалив одну из ветвей через GUI Github.
Ответ 8
Говоря от пользователя ПК - Перезагрузите.
Честно говоря, это сработало для меня. Я решил две странные проблемы git, которые, как я думал, были повреждены таким образом.
Ответ 9
Эта ошибка с (неспособным обновить локальную ссылку) также может произойти, если вы недавно изменили пароли, и есть некоторые причудливые вещи, интегрирующие ваши логины Windows и Linux.
Ответ 10
Повторите клонирование репозитория и скопируйте папку .git в свой сломанный проект.
Ответ 11
У меня была такая же проблема на моем сервере debian, как и на диске. Никакой файл temp не может быть создан, так как на устройстве не остается свободного места. После очистки некоторых файлов это получилось прекрасно.
Ответ 12
Вероятно, это очень нишевая ситуация, но: я запускаю Windows на виртуальной машине Parallels на моем MacBook Pro, а мои локальные репозитории хранятся на диске виртуальной машины, который используется совместно с macOS.
Если у меня открыт файл в приложении Mac из репозитория, расположенного на виртуальной машине Windows, я иногда получаю сообщение об ошибке "невозможно обновить локальную ссылку". Решение, когда это происходит, состоит в том, чтобы просто закрыть файл или выйти из приложения Mac.