git pull from remote, ale żaden taki ref nie został pobrany?

68

Mam git mirror na dysku i kiedy chcę zaktualizować moje repo za pomocą git pull, wyświetla mi komunikat o błędzie:

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

Daje mi również:

  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

Po uruchomieniu make menuconfig daje mi Linuksa w wersji 3.5.7? Co to znaczy? Jak mogę zaktualizować moje repo?

Gigamegs
źródło

Odpowiedzi:

58

Sprawdź gałąź, w której się znajdujesz ( git branch), sprawdź konfigurację dla tej gałęzi (w .../.git/config), prawdopodobnie jesteś w złej gałęzi lub konfiguracja mówi, że ma się połączyć z nieistniejącą (teraz?) Gałęzią zdalną.

vonbrand
źródło
22
Aby usunąć nieistniejące zdalne odniesienia do oddziału w lokalnym repozytorium, użyj git remote prune origin.
jevon
7
Innym sposobem, aby „sprawdzić konfigurację” dla oddziału jest: git branch -vv. Wyświetla powiązany z gałęzią „zdalny”.
offby1
28

W moim przypadku mój lokalny oddział nie został skonfigurowany do śledzenia zdalnego oddziału. Musiałem ręcznie uruchomić:

git pull origin remotebranch

Następnie następnym razem, gdy wykonasz push do „git push -u”, aby ustawić prawidłowe śledzenie.

Mauvis Ledford
źródło
To samo dotyczy pierwszego sklonowania pustego repozytorium, tj. Utworzonego przy użyciugit init --bare
Cyclonecode
10

W moim przypadku mój oddział lokalny i oddział zdalny miały inną wielkość liter.

Aby rozwiązać ten problem, usunąłem mój lokalny oddział $ git branch -d branch-name, a następnie ponownie sprawdziłem zdalny oddział za pomocą $ git fetchi $ git checkout Branch-name.

Feckmore
źródło
Jest czysty, prosty i działa dobrze. Dziękuję Ci.
Balasubramani M,
Mam ten błąd w linii cmd. Wypróbowałem SmartGit z rebase i przeszedłem.
P.Brian.Mackey,
Zrób to raz, zamiast usuwać oddział i ponownie sprawdzać oddział za każdym razem: Popraw pisownię wielkimi literami w swoim /.git/config
wz366
2

Możliwe, że ktoś w twoim zespole po prostu połączył twój oddział i usunął go (zwykle robione po scaleniu). Możesz utworzyć gałąź w repozytorium i spróbować ponownie. Co jakiś czas zdarza mi się w mojej firmie (bitbucket domyślnie łączy i usuwa).

Scott Biggs
źródło
1

W moim przypadku (zwykłe zastrzeżenie) miałem już gałąź o odpowiedniej nazwie, więc musiałem tylko dodać remote = origindo mojego .git / config:

[branch "sparql"]
    merge = refs/heads/sparql
    remote = origin # <-- added
ericP
źródło
1

Miałem ten sam błąd, gdy zabrakło mi miejsca na dysku. Po zmianie rozmiaru woluminu błąd zniknął.

Daniel Alder
źródło
0

Ten problem wystąpił z powodu problemu z obudową, który objawia się w systemie Windows.

Moja konfiguracja Git wyglądała następująco:

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

Na serwerze zarówno „Bug”, jak i „bug” istniały w ramach wielu gałęzi. System Windows może przechowywać tylko jeden z nich jednocześnie, ze względu na odwzorowanie systemu plików. Dlatego ręcznie zaktualizowałem moją konfigurację, aby pasowała do wersji serwera, co faktycznie rozwiązało problem ściągania:

[branch "Bug/some_branch"]
  remote = origin
  merge = refs/heads/bug/some_branch
Grymas rozpaczy
źródło
0

Jeśli gałąź zniknie,

$ 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

Następnie kasa master lub cokolwiek potrzebujesz

MCM
źródło