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?

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ą.


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.


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.


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).


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


1

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


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

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.