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? Что это значит? Как я могу обновить мой репо?

Ответы:


58

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


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.


Это чисто, просто и работает нормально. Спасибо.
Баласубрамани М

Я получил эту ошибку в строке cmd. Попробовал SmartGit с ребазом и прошел мимо него.
P.Brian.Mackey

Сделайте это один раз вместо удаления ветки и повторной проверки ветки каждый раз: исправьте заглавные буквы в вашем /.git/config
wz366

2

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


1

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

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added


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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.