Ich habe nur einen Zweigmaster und erhalte diesen Fehler jedes Mal, wenn ich versuche, "git pull" zu machen:
error: Couldn't set refs/remotes/origin/master
From /var/lib/git/xxx/project
! a0f80ea..49177a3 master -> origin/master (unable to update local ref)
und wenn ich "git pull origin master" mache, bekomme ich:
error: Couldn't set ORIG_HEAD
fatal: Cannot update the ref 'ORIG_HEAD'.
Ich habe gesucht, kann aber nicht finden warum
git
command-line-interface
user115561
quelle
quelle
Antworten:
Mein Team und ich sind auf diesen Fehler gestoßen und konnten die lokale Referenz nicht aktualisieren gestoßen, da wir die Referenz , als wir SourceTree abgerufen haben.
Wir verwendeten :
Dadurch werden doppelte Referenzobjekte entfernt, die das Problem beheben sollen.
Hier sind einige Links, über die Sie mehr über Git-Referenzen und das Beschneiden erfahren können :
Git-Tipp der Woche
Git-Prune-Dokumentation
Git Referenzen
quelle
git gc --prune=now
git remote prune origin
from stackoverflow.com/questions/2998832/…git remote prune origin
und es hat bei mir nicht funktioniert. Aber danach habe ichgit gc --prune=now
es versucht und es hat funktioniert! Ich bin mir nicht sicher, ob beide in dieser Reihenfolge benötigt wurden oder nur diese.git
führt zu einem hilfreichen StackOverflow-Beitrag mit einer knappen Lösung.Ich habe wie folgt gelöst:
git remote prune origin
quelle
git gc --prune=now
tat nichtsVerwenden Sie mit gitbach line commande, um
git update-ref
die Referenz Ihrer lokalen Niederlassung zu aktualisieren:dann ziehen mit
$ git pull
[locked branch name]
ist der Name des Zweigs, in dem der Fehler aufgrund einer Nichtübereinstimmung der Festschreibungs-IDs auftritt.quelle
Ich habe dieselbe Fehlermeldung entdeckt, die versucht, von einem Bitbuck-Repo in meine lokale Kopie zu ziehen. Es gibt auch nur einen Branchenmaster und der Befehl
git pull origin master
führt zu dieser FehlermeldungLösung wie folgt
git reflog
Finden Sie die Nummer des letzten Commitsgit reset --hard <numnber>
Auf das letzte Commit zurücksetzengit pull origin master
ohne fehler wieder ziehenquelle
Versuchen Sie, diesen Befehl in Ihrem Git-Repository-Stammordner zu verwenden:
quelle
rm .git/refs/remotes/origin/master
Es funktioniert bei mir!
quelle
Stellen Sie sicher, dass der Benutzer, der das ausführt,
git pull
derselbe Benutzer ist, der das Repository erstellt hat. Die Dateiberechtigungen sind falsch.quelle
Dies ist mir unter OSX passiert, wo ich ein Dateisystem verwende, bei dem die Groß- und Kleinschreibung nicht berücksichtigt wird. Irgendwie hat ein anderer Entwickler einen Zweig mit dem gleichen Namen, aber einem anderen Fall geschoben:
My-Branch
vs.my-branch
.Ich hatte bereits
My-Branch
ausgecheckt und bekam den Fehler "Lokale Referenz kann nicht aktualisiert werden", als ich einen Pull machte, wahrscheinlich weil das DateisystemMy-Branch
== denktmy-branch
.Da wir Github verwenden, könnte ich das Problem lösen, indem ich einen der Zweige über die GUI von Github lösche.
quelle
Dieser Fehler mit (lokale Referenz kann nicht aktualisiert werden) kann auch auftreten, wenn Sie kürzlich Kennwörter geändert haben und einige ausgefallene Dinge Ihre Windows- und Linux-Anmeldungen integrieren.
quelle
Klonen Sie das Repository erneut und kopieren Sie den Ordner .git in Ihr fehlerhaftes Projekt.
quelle
Von einem PC-Benutzer sprechen - Neustart.
Ehrlich gesagt hat es bei mir funktioniert. Ich habe zwei seltsame Git-Probleme gelöst, von denen ich dachte, dass sie auf diese Weise korrupt sind.
quelle
Dies ist wahrscheinlich eine sehr Nischensituation, aber: Ich führe Windows in einer Parallels-VM auf meinem MacBook Pro aus, wobei meine lokalen Repos auf der Festplatte der VM gespeichert sind, die für macOS freigegeben ist.
Wenn in einer Mac-App eine Datei von einem Repo geöffnet ist, das sich auf der Windows-VM befindet, wird manchmal der Fehler "Lokale Referenz kann nicht aktualisiert werden" angezeigt. In diesem Fall können Sie die Datei einfach schließen oder die Mac-App beenden.
quelle
Was ist hier passiert? Die lokalen Verweise auf Ihre Remote-Zweige wurden geändert. Daher
git pull
findet git beim Ausführen keine entsprechenden Remote-Zweige und schlägt daher fehl.Bereinigt tatsächlich diese lokalen Referenzen und führt sie dann
git pull
erneut aus.Vorschlag - Bitte laufen Sie mit
--dry-run
aus Sicherheitsgründenquelle
Ich hatte das gleiche Problem auf meinem Debian-Server, da die Festplatte voll ist. Es konnte keine temporäre Datei erstellt werden, da auf dem Gerät kein Speicherplatz mehr vorhanden ist. Nach dem Bereinigen einiger Dateien hat es gut geklappt.
quelle
Diese Arbeit für mich
quelle
Ich hatte den gleichen Fehler, ich habe aus Eclipse heraus aktualisiert und viele Fehler erhalten. Also habe ich versucht, über ein DOS-Befehlsfenster zu aktualisieren, und das gleiche Problem festgestellt.
Dann habe ich die Lösung "git gc --prune = now" ausprobiert. Dies gab Meldungen aus, dass die Dateien im refs-Verzeichnis gesperrt waren.
Eclipse muss etwas im Verzeichnis "refs" gesperrt haben.
Die Lösung, die ich gefunden habe, war, Eclipse einfach zu schließen. Dann habe ich das Repository von DOS mit einem "git PULL" -Befehl aktualisiert, und alles hat gut funktioniert.
quelle
Entfernen Sie die Datei .git / logs / refs / remotes / origin / [Name des gesperrten Zweigs]
quelle