932 Stimmen

git pull schlägt fehl "Referenz kann nicht aufgelöst werden" "Lokale Referenz kann nicht aktualisiert werden"

Bei der Verwendung von git 1.6.4.2, als ich versuchte, eine git pull Ich erhalte diesen Fehler:

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)

Ich habe versucht git remote prune origin aber es hat nicht geholfen.

3 Stimmen

0 Stimmen

Sie können manuell löschen master Datei unter dem unten angegebenen Ort: PROJECT\.git\refs\remotes\origin\master

103voto

Ich möchte nur eine der möglichen Ursachen für eine fehlerhafte Git-Referenz hinzufügen.

Mögliche Grundursache

Auf meinem System (Windows 7 64-Bit), wenn ein BSOD geschieht werden einige der gespeicherten Referenzdateien (die höchstwahrscheinlich gerade geöffnet waren oder in die geschrieben wurde, als der BSOD auftrat) überschrieben mit NULL Zeichen (ASCII 0).

Wie bereits von anderen erwähnt, reicht es aus, die ungültigen Referenzdateien zu löschen und das Repository neu zu laden oder neu zu holen.

Beispiel

Fehlermeldung:

kann den Verweis 'refs/remotes/origin/some/branch' nicht sperren: Verweis 'refs/remotes/origin/some/branch' kann nicht aufgelöst werden: Verweis gebrochen

Lösung:

Löschen Sie die Referenz refs/remotes/origin/some/branch die in der Datei %repo_root%/.git/refs/remotes/origin/some/branch .

91voto

annelorayne Punkte 1244

Versuchen Sie es:

git gc --prune=now

git remote prune origin

git pull

53voto

Matias Sebastiao Punkte 1870

Führen Sie die folgenden Befehle aus:

rm .git/refs/remotes/origin/master

git fetch

git branch --set-upstream-to=origin/master

Nur für den Fall, dass Sie wissen möchten, was die .git/refs/remotes/origin/master würden Sie die Fernbedienungen Abschnitt in Git-Referenzen .

51voto

marczych Punkte 857

git fetch --prune hat diesen Fehler für mich behoben:

[marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:25]
[I]> git fetch
error: cannot lock ref 'refs/remotes/origin/user/janek/integration/20170505': 'refs/remotes/origin/user/janek/integration' exists; cannot create 'refs/remotes/origin/user/janek/integration/20170505'
From github.com:zooxco/driving
 ! [new branch]            user/janek/integration/20170505 -> origin/user/janek/integration/20170505  (unable to update local ref)
From github.com:zooxco/driving
[marc.zych@marc-desktop] - [~/code/driving] - [Wed May 10, 02:58:30]
[I]> git fetch --prune
 - [deleted]               (none)     -> origin/user/janek/integration

Dies setzt allerdings voraus, dass der betreffende Zweig auf der Gegenseite gelöscht wurde.

Sie können dies auch hinzufügen zu ~/.gitconfig automatisch zu beschneiden, wenn die git fetch :

[fetch]
    prune = true

49voto

Uri Shtand Punkte 1607

In meinem Fall war das Problem gelöst, nachdem ich alle remove-Referenzdateien unter dem Verzeichnis .git .

Wenn Sie sich die Meldung ansehen, erfahren Sie, welche Dateien Sie (speziell) löschen müssen.

Die zu löschenden Dateien befinden sich unter .git/refs/remotes .

Ich habe gerade alle Dateien dort gelöscht und gc prune ausgeführt

git gc --prune=now

Danach funktioniert alles einwandfrei.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X