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

1431voto

Vojtech Vitek Punkte 21769

Versuchen Sie, Ihr lokales Repository mit aufzuräumen:

$ git gc --prune=now
$ git remote prune origin

man git-gc(1):

git-gc - Cleanup unnecessary files and optimize the local repository

git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]

       Runs a number of housekeeping tasks within the current repository, such as compressing file revisions
       (to reduce disk space and increase performance) and removing unreachable objects which may have been
       created from prior invocations of git add.

       Users are encouraged to run this task on a regular basis within each repository to maintain good disk
       space utilization and good operating performance.

man git-remote(1):

git-remote - manage set of tracked repositories

git remote prune [-n | --dry-run] <name>

           Deletes all stale remote-tracking branches under <name>. These stale branches have already been
           removed from the remote repository referenced by <name>, but are still locally available in
           "remotes/<name>".

830voto

Michel Krämer Punkte 13403

Das ist mir auch schon passiert. In meinem Fall war der schlechte Schiedsrichter der Meister, und ich habe Folgendes getan:

rm .git/refs/remotes/origin/master
git fetch

Dadurch konnte Git die Ref-Datei wiederherstellen. Danach funktionierte alles wieder wie erwartet.

189voto

Bernd Punkte 1651

Das hat bei mir funktioniert:

git gc --prune=now

116voto

Brian van Rooijen Punkte 1836

Bei mir hat es funktioniert, die Dateien, die Fehler verursachen, aus dem Ordner .git/refs/remotes/origin/ .

104voto

avivamg Punkte 8416

Erläuterung : Es scheint, dass die Zweige Ihres Remote-Repos (in Github/Bitbucket) entfernt wurden, obwohl Ihre lokalen Referenzen nicht aktualisiert wurden und auf nicht existierende Referenzen verweisen.

Um dieses Problem zu lösen:

git fetch --prune
git fetch --all
git pull

Für zusätzliche Lektüre - Referenz von Github-Dokumentation :

git-fetch - Herunterladen von Objekten und Verweisen aus einem anderen Repository

--alle Holen Sie alle Fernbedienungen.

--prune Entfernen Sie nach dem Holen alle entfernten Verfolgungszweige, die auf der Gegenseite nicht mehr existieren.

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