Mam tylko gałąź master i otrzymuję ten błąd za każdym razem, gdy próbuję „git pull”:
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
a kiedy robię „git pull origin master”, otrzymuję:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
szukałem, ale nie mogę znaleźć powodu
git
command-line-interface
user115561
źródło
źródło
Odpowiedzi:
Mój zespół i ja napotkaliśmy ten błąd, nie mogąc zaktualizować lokalnego odniesienia , podczas ściągania SourceTree.
Użyliśmy:
Spowoduje to usunięcie wszelkich zduplikowanych obiektów referencyjnych, które powinny rozwiązać problem.
Oto kilka linków, w których możesz dowiedzieć się więcej o odwołaniach do git i przycinaniu :
git wskazówka tygodnia
dokumentacja git-prune
referencje git
źródło
git gc --prune=now
git remote prune origin
ze stackoverflow.com/questions/2998832/ ...git remote prune origin
i to nie zadziałało. Ale potem spróbowałemgit gc --prune=now
i zadziałało! Nie jestem pewien, czy oba były potrzebne w tej kolejności, czy tylko w tej.git
tym prowadzi do przydatnego postu StackOverflow z zwięzłym rozwiązaniem.Rozwiązałem jak poniżej:
git remote prune origin
źródło
git gc --prune=now
nic nie dałoz gitbach line commande użyj,
git update-ref
aby zaktualizować odniesienie do lokalnego oddziału:następnie pociągnij za pomocą
$ git pull
[locked branch name]
to nazwa gałęzi, w której występuje błąd z powodu niedopasowania identyfikatorów zatwierdzenia.źródło
Spróbuj użyć tego polecenia w folderze głównym repozytorium git:
źródło
Odkryłem ten sam komunikat o błędzie podczas próby ściągnięcia z repozytorium Bitbuck do mojej kopii lokalnej. Jest też tylko jeden Branche Master, a polecenie
git pull origin master
prowadzi do tego komunikatu o błędzieRozwiązanie w następujący sposób
git reflog
znajdź numer ostatniego zatwierdzeniagit reset --hard <numnber>
reset do ostatniego zatwierdzeniagit pull origin master
pociągnij ponownie bez błęduźródło
rm .git/refs/remotes/origin/master
Na mnie to działa!
źródło
Upewnij się, że użytkownik, który wykonuje program,
git pull
jest tym samym użytkownikiem, który utworzył repozytorium. Uprawnienia do pliku są nieprawidłowe.źródło
Sklonuj repozytorium ponownie i skopiuj folder .git do zepsutego projektu.
źródło
Zdarzyło mi się to na OSX, gdzie używam systemu plików niewrażliwego na wielkość liter. Jakoś inny deweloper popchnął oddział o tej samej nazwie, ale innym przypadku:
My-Branch
vsmy-branch
.Już miałem
My-Branch
wyewidencjonowałem i otrzymałem błąd „nie można zaktualizować lokalnego odniesienia”, gdy wykonałem ściąganie, prawdopodobnie dlatego, że system plików myśliMy-Branch
==my-branch
.Ponieważ używamy Githuba, mogłem rozwiązać problem, usuwając jedną z gałęzi za pośrednictwem GUI Githuba.
źródło
Ten błąd z (nie można zaktualizować lokalnego odniesienia) może się również zdarzyć, jeśli ostatnio zmieniłeś hasła i jest kilka fajnych rzeczy integrujących twoje loginy w systemie Windows i Linux.
źródło
Rozmowa od użytkownika komputera - Uruchom ponownie.
Szczerze, to zadziałało na mnie. W ten sposób rozwiązałem dwa dziwne problemy z gitem, które uważałem za zepsute.
źródło
Jest to prawdopodobnie bardzo niszowa sytuacja, ale: Uruchamiam system Windows na maszynie wirtualnej Parallels na moim MacBooku Pro, z lokalnymi repozytoriami przechowywanymi na dysku maszyny wirtualnej, który jest współdzielony z systemem macOS.
Jeśli mam otwarty plik w aplikacji Mac z repozytorium znajdującego się na maszynie wirtualnej z systemem Windows, czasami pojawia się błąd „nie można zaktualizować lokalnego odniesienia”. Rozwiązaniem w takim przypadku jest po prostu zamknięcie pliku lub zamknięcie aplikacji Mac.
źródło
Co tu się stało? Lokalne odniesienia do twoich zdalnych gałęzi zostały zmienione i dlatego po uruchomieniu
git pull
git nie znajduje żadnych odpowiednich zdalnych gałęzi i dlatego kończy się niepowodzeniem.faktycznie czyści te lokalne odniesienia, a następnie uruchamia się
git pull
ponownie.Sugestia -
--dry-run
dla bezpieczeństwa skorzystaj z opcjiźródło
Miałem ten sam problem na moim serwerze debian, ponieważ dysk jest pełny. Nie można utworzyć pliku tymczasowego, ponieważ na urządzeniu nie ma wolnego miejsca. Po wyczyszczeniu niektórych plików wyszło dobrze.
źródło
Ta praca dla mnie
źródło
Miałem ten sam błąd, aktualizowałem z Eclipse i otrzymałem wiele błędów. Więc próbowałem aktualizować z okna poleceń DOS i otrzymałem ten sam problem.
Następnie wypróbowałem rozwiązanie „git gc --prune = now”, które dało komunikat, że pliki zostały zablokowane w katalogu refs.
Eclipse musiał mieć zablokowane coś w katalogu „refs”.
Rozwiązaniem, które znalazłem, było po prostu zamknięcie Eclipse. Następnie zaktualizowałem repozytorium z DOS za pomocą polecenia „git PULL” i wszystko działało dobrze.
źródło
Usuń plik .git / logs / refs / remotes / origin / [Locked Branch Name]
źródło