git pull с пульта, но не получен такой реф?

69

У меня есть зеркало git на моем диске, и когда я хочу обновить репозиторий с помощью git pull, мне выдается сообщение об ошибке:

 Your configuration specifies to merge with the ref '3.5/master' from the remote, but no such ref was fetched.

Это также дает мне:

  1ce6dac..a5ab7de  3.4/bfq    -> origin/3.4/bfq
  fa52ab1..f5d387e  3.4/master -> origin/3.4/master
  398cc33..1c3000a  3.4/upstream-updates -> origin/3.4/upstream-updates
  d01630e..6b612f7  3.7/master -> origin/3.7/master
  491e78a..f49f47f  3.7/misc   -> origin/3.7/misc
  5b7be63..356d8c6  3.7/upstream-updates -> origin/3.7/upstream-updates
  636753a..027c1f3  3.8/master -> origin/3.8/master
  b8e524c..cfcf7b5  3.8/misc   -> origin/3.8/misc
  * [neuer Zweig]     3.8/upstream-updates -> origin/3.8/upstream-updates

Когда я запускаю make menuconfig, это дает мне версию Linux 3.5.7? Что это значит? Как я могу обновить мой репо?

Gigamegs
источник

Ответы:

58

Проверьте ветвь, в которой вы находитесь ( git branch), проверьте конфигурацию для этой ветки (in .../.git/config), вы, вероятно, находитесь в неправильной ветке, или ваша конфигурация говорит, что она объединяется с (сейчас?) Несуществующей удаленной веткой.

vonbrand
источник
22
Чтобы удалить несуществующие ссылки на удаленные ветви в вашем локальном репозитории, используйте git remote prune origin.
Джевон
7
Другой способ «проверить конфигурацию» для филиала является: git branch -vv. Это отображает "удаленный" связанный филиал.
offby1
28

В моем случае мой локальный филиал не был настроен для отслеживания удаленного филиала. Я должен был вручную запустить:

git pull origin remotebranch

Затем в следующий раз, когда вы выполните push, выполните «git push -u», чтобы настроить правильное отслеживание.

Мовис Ледфорд
источник
То же самое происходит, когда вы впервые клонируете пустой репо, т. git init --bare
Е.
10

В моем случае мой локальный филиал и удаленный филиал имели разную капитализацию.

Чтобы решить эту проблему, я удалил свою локальную ветку $ git branch -d branch-name, затем снова извлек удаленную ветку, используя $ git fetchи $ git checkout Branch-name.

Feckmore
источник
Это чисто, просто и работает нормально. Спасибо.
Баласубрамани М
Я получил эту ошибку в строке cmd. Попробовал SmartGit с ребазом и прошел мимо него.
P.Brian.Mackey
Сделайте это один раз вместо удаления ветки и повторной проверки ветки каждый раз: исправьте заглавные буквы в вашем /.git/config
wz366
2

Возможно, кто-то в вашей команде просто слил вашу ветку и удалил ее (обычно это делается после слияния). Вы можете сделать ветку на репо и попробовать еще раз. Это происходит со мной в моей компании время от времени (по умолчанию Bitbucket объединяет и удаляет).

Скотт Биггс
источник
1

В моем случае (обычное предостережение) у меня уже была ветвь с соответствующим именем, поэтому мне нужно было только добавить remote = originв мой .git / config:

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added
ericP
источник
1

У меня была такая же ошибка при нехватке места на диске. После изменения громкости ошибка исчезла.

Даниэль Алдер
источник
0

Я получил эту проблему из-за проблемы с оболочкой, которая проявляется в Windows.

Мой конфиг Git выглядел так:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/Bug/some_branch

На сервере «ошибка» и «ошибка» существовали как часть нескольких ветвей. Однако Windows может хранить только один из них одновременно из-за сопоставления файловой системы. Поэтому я вручную обновил свой конфиг, чтобы он соответствовал версии сервера, что фактически решило проблему извлечения:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Гримаса Отчаяния
источник
0

Если ветка исчезла,

$ git status
On branch blah_gone_now
Your branch is based on 'origin/1234/blah_gone_now', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)

$ git branch --unset-upstream

Затем мастер проверки или что вам нужно

MCM
источник