Git Pull выводит сообщение «Неустранимый: Не удалось найти удаленный ref refs /heads / xxxx» и зависает - PullRequest
55 голосов
/ 03 августа 2011

Я создал ветку с именем «6796», затем перенес ее на удаленный компьютер, проверил ее на другом компьютере, внес другие изменения, нажал ее, затем слил с мастером и удалил локально и удаленно (git push :6796) - на другой машине. Теперь, когда я бегу git pull:

fatal: Couldn't find remote ref refs/heads/6796
user@host:~/path/to/repo$ fatal: The remote end hung up unexpectedly

но git pull origin master работает нормально. Мне кажется, что есть какая-то 6796 ссылка зависает ... как решить эту проблему?

Ответы [ 6 ]

98 голосов
/ 03 августа 2011

Возможно, есть некоторые команды для ее решения, но я бы начал с поиска в вашем файле .git/config ссылок на эту ветку и их удаления.

16 голосов
/ 03 августа 2011

Вы также должны удалить локальную ветку:

git branch -d 6796

Другой способ - удалить все устаревшие ветви из вашего локального репозитория.Это удалит все локальные ветви, которые уже были удалены с пульта:

git remote prune origin --dry-run
2 голосов
/ 08 ноября 2014

Эта ошибка может возникать и в следующей ситуации.

Вы хотите извлечь ветку с именем feature из удаленного репозитория, но ошибка выдается, потому что у вас уже есть ветка с именем feature/<feature_name> в вашем локальномхранилище.

Просто извлеките ветку feature под другим именем:

git checkout -b <new_branch_name> <remote>/feature
2 голосов
/ 04 февраля 2014

У меня была похожая проблема, когда я пытался получить тягу с одинарной кавычкой 'в названии.

Мне пришлось скрыться от имени запроса на получение:

git pull https://github.com/foo/bar namewithsingle"'"quote
1 голос
/ 09 декабря 2013

Я только что столкнулся с подобной проблемой, когда попытался зафиксировать только что созданный репозиторий с "." в его имени. Я видел, что у некоторых других были разные проблемы с "." в названии репо.

Я просто заново создал репо и

replaced "." with "-"

Могут быть и другие способы решения этой проблемы, но для меня это было быстрым решением, так как это был новый репо.

0 голосов
/ 08 ноября 2017

Чтобы вытащить удаленную ветку локально, я делаю следующее:

git checkout -b branchname // создаем локальную ветку с тем же именем и проверяем ее

git pull origin branchname // переводит удаленный на локальный

Единственный раз, когда я сделал это, и это не сработало, я удалил репо, снова клонировал его и повторил 2 вышеописанных шага; это сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...