Używając git 1.6.4.2, kiedy próbowałem git pull
, otrzymuję ten błąd:
error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
! [new branch] LT558-optimize-sql -> origin/LT558-optimize-sql (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
! [new branch] split-css -> origin/split-css (unable to update local ref)
Próbowałem git remote prune origin
, ale to nie pomogło.
Odpowiedzi:
Spróbuj wyczyścić lokalne repozytorium za pomocą:
man git-gc (1):
man git-remote (1):
źródło
git remote prune origin
polecenie będzie działać na mojej lokalnej kopii roboczej lub na zdalnym repozytorium?Zdarzyło mi się również. W moim przypadku złym referencją był master, a ja wykonałem następujące czynności:
To spowodowało, że git przywrócił plik ref. Potem wszystko znów działało zgodnie z oczekiwaniami.
źródło
.git
jest to folder, wykonując go,ls -la
jeśli nie, sprawdź zawartość pliku.git
, aby znaleźć rzeczywisty folder .git, w którym znajdują się odnośniki..git
zawartość pliku w moim przypadku:gitdir: ../.git/modules/my-submodule-name
To zrobiło dla mnie zadanie:
źródło
git remote prune origin
Dla mnie zadziałało usunięcie plików, które zgłaszają błędy z folderu
.git/refs/remotes/origin/
.źródło
NULL
s.Spróbuj:
źródło
Wykonaj następujące polecenia:
źródło
Chciałbym tylko dodać, jak to się dzieje, że referencja się psuje.
Możliwa przyczyna pierwotna
W moim systemie (Windows 7 64-bit), gdy zdarza się BSOD , niektóre z zapisanych plików referencyjnych (najprawdopodobniej obecnie otwierane / zapisywane w momencie BSOD) są zastępowane
NULL
znakami (ASCII 0).Jak wspomnieli inni, aby to naprawić, wystarczy usunąć niepoprawne pliki referencyjne i ponownie pobrać lub ponownie pobrać repozytorium.
Przykład
Błąd:
cannot lock ref 'refs/remotes/origin/some/branch': unable to resolve reference 'refs/remotes/origin/some/branch': reference broken
Rozwiązanie: usuń plik
%repo_root%/.git/refs/remotes/origin/some/branch
źródło
error: cannot lock ref 'refs/remotes/origin/master': unable to resolve reference 'refs/remotes/origin/master': reference broken
. Próbowano wykonaćgit pull
po usunięciu pierwszego plikufatal: update_ref failed for ref 'HEAD': cannot lock ref 'HEAD': unable to resolve reference 'refs/heads/master': reference broken
. Po usunięciu drugiego plikugit pull origin master
powiodło się.Miałem ten sam problem i rozwiązałem go, przechodząc do pliku, w którym był błąd:
Ten plik był pełen zer. Zastąpiłem go najnowszym ref z github.
źródło
.git/refs/remotes/origin/master
był po prostu pusty. Rozwiązano problem, usuwając go.W moim przypadku problem został rozwiązany po usunięciu wszystkich plików odniesienia do usunięcia z katalogu
.git
.Jeśli spojrzysz na wiadomość, dowiesz się, które pliki musisz usunąć (konkretnie).
Pliki do usunięcia znajdują się pod
.git/refs/remotes
.Właśnie usunąłem wszystkie pliki i uruchomiłem gc prune
Potem wszystko działa dobrze.
źródło
Wyjaśnienie : Wygląda na to, że gałęzie zdalnego repozytorium (w Github / bitbucket) zostały usunięte, chociaż lokalne odniesienia nie zostały zaktualizowane i wskazują na nieistniejące odniesienia.
Aby rozwiązać ten problem:
Do dodatkowej lektury - Odniesienia z dokumentacji Github :
źródło
git fetch --prune
naprawiłem ten błąd dla mnie:Zakłada się jednak, że obrażająca gałąź została usunięta na pilocie.
źródło
--prune
, co widzę. Porada: usuń bezużyteczne monity o podanie hasła po wklejeniu przykładów.Jeśli błąd „nie można zaktualizować lokalnego odwołania”, powtarza się, nawet po zastosowaniu odpowiedzi Vojtecha Vitka lub Michela Krämera , możesz mieć złe referencje w lokalnym repozytorium ORAZ.
W takim przypadku należy zastosować obie poprawki bez ciągnięcia lub wciskania między ...
Dla mnie trwałe rozwiązanie zostało osiągnięte dopiero po zastosowaniu obu poprawek przed push / pull.
źródło
Aby odpowiedzieć na to krótko, ten problem pojawia się, gdy lokalny ma jakieś informacje o pilocie i ktoś zmienia coś, co sprawia, że pilot i twoje zmiany nie są synchronizowane.
Otrzymywałem ten problem, ponieważ ktoś usunął zdalną gałąź i ponownie utworzył tę samą nazwę.
Aby poradzić sobie z takimi problemami, pobierz lub pobierz ze zdalnego.
lub jeśli używasz dowolnego GUI, wykonaj pobieranie ze zdalnego.
źródło
Byłem w stanie pracować
źródło
Spróbuj tego:
Branch_Name
, gałąź, w której aktualnie jesteś.Jeśli zrobisz tylko
git pull
, pobiera również wszystkie inne utworzone nazwy gałęzi.Dlatego otrzymujesz to:
źródło
Dla mnie miałem lokalny oddział o nazwie
feature/phase2
i zdalny oddziałfeature/phase2/data-model
. Przyczyną problemu był konflikt nazw, więc usunąłem mój lokalny oddział (możesz zmienić nazwę, jeśli ma coś, co trzeba zachować)źródło
Gdyby
git gc --prune=now
dawka ci nie pomoże. (pech jak ja)Zrobiłem to, usuwając projekt lokalnie i ponownie klonując cały projekt.
źródło
Korzystam z Tower iz jakiegoś powodu moja nazwa folderu to
.git/refs/remotes/origin/Github
. Zmiana na małe litery.git/refs/remotes/origin/github
rozwiązała problem.źródło
Miałem ten sam problem. wykonuję następujące kroki
1) zmień oddział, który ma problem, na inny oddział
2) usuń ten oddział
3) Kasa ponownie.
Uwaga: - Możesz ukryć niezatwierdzone zmiany i odłożyć je z powrotem.
źródło
Użyłem
git prune origin
i to zadziałało.źródło
Miałem ten sam problem z aktualizacją kompozytora. Ale dla mnie zadziałało to dopiero po wyczyszczeniu pamięci podręcznej kompozytora i usunięciu zawartości folderu dostawcy:
źródło
Wystąpił ten problem podczas próby sklonowania z
git bundle
utworzonego pliku, żadna inna odpowiedź nie zadziałała, ponieważ nie mogłem sklonować repozytorium (więcgit gc
usunięcie i edycja plików nie wchodziła w rachubę).Był jednak inny sposób, aby to naprawić - plik źródłowy pliku
.bundle
zaczynał się od:Usunięcie czwartej linii za pomocą vima naprawiło problem.
źródło
Miałem ten problem podczas korzystania z SourceTree. Spróbowałem ponownie pociągnąć i zadziałało. Myślę, że zbyt szybko wiedźmowałem gałęzie (kasa) :).
Moja sytuacja różni się nieco od plakatu, ponieważ moje repozytorium działa stosunkowo kooperacyjnie, bez widocznego uszkodzenia.
źródło
źródło
Napotkano ten sam problem, gdy repozytorium zostało usunięte i utworzone o tej samej nazwie. Działało to tylko wtedy, gdy ponownie ustawiłem zdalny adres URL, jak poniżej;
Sprawdź zdalny adres URL:
Teraz wszystkie polecenia powinny działać jak zwykle.
źródło
Właśnie wpadłem na problem dzisiaj.
Metoda rozwiązywania problemów: Z SourceTree na serwerach Windows możesz spróbować uruchomić go jako administrator. To rozwiązuje mój problem „niemożności aktualizacji lokalnego ref” w Atlassian Source Tree 2.1.2.5 w Windows Server 2012 R2 w domenie.
Jeśli możesz za bardzo replikować tę sytuację, oznacza to, że problem jest spowodowany problemem z uprawnieniami. Lepiej przeanalizować i znaleźć główną przyczynę - prawdopodobnie niektóre określone pliki są własnością innych użytkowników i tak dalej - w przeciwnym razie wystąpi niepożądany efekt uboczny: będziesz musiał uruchomić SourceTree jako Administrator przez resztę wieczności.
źródło
Zapisanie konkretnego przypadku, który może powodować ten problem.
Pewnego dnia wypchnąłem gałąź o nazwie „funkcja / podfunkcja”, mając jednocześnie gałąź „funkcja” na pilocie.
Ta operacja działała dobrze bez żadnego błędu po mojej stronie, ale kiedy moi współpracownicy pobrali i / lub wyciągnęli jakąkolwiek gałąź, wszyscy mieli dokładnie ten sam komunikat o błędzie
unable to update local ref
,cannot lock ref 'refs/remotes/origin/feature/subfeature
.Zostało to rozwiązane poprzez usunięcie
feature
gałęzi na zdalnym (git push --delete origin feature
), a następnie uruchomieniegit remote prune origin
repozytorium moich współpracowników, które generowało wiadomości, w tym* [pruned] origin/feature
.Domyślam się, że
git fetch
próbowałem wewnętrznie utworzyćsubfeature
ref wfeature
folderze git (.git / ...), ale utworzenie folderu nie powiodło się, ponieważfeature
ref już był .źródło
Ten problem występuje, gdy programista na komputerze Mac utworzył gałąź o nazwie większej niż „>” w nazwie gałęzi.
To spowodowało problemy w TeamCity i na lokalnych komputerach z systemem Windows i systemem SourceTree. BitBucket przepuścił go bez żadnych problemów.
Aby rozwiązać problem, użytkownik usunął gałąź i utworzył ją ponownie. Co było miłe i łatwe.
źródło
Miałem tę samą wiadomość, ale z katalogiem, otrzymałem nieudaną wiadomość przy pobieraniu.
git --prone też mi nie pomógł. Okazuje się, że był plik o tej samej nazwie co katalog utworzony zdalnie.
Musiałem przejść do .git \ logs \ refs \ remotes \ origin i skasować plik ustawień regionalnych - a następnie pobrać ponownie, wszystko dobrze.
źródło