2012-04-11 6 views
1
fatal: Duplicated ref, and SHA1s don't match: refs/heads/BranchName 

Ich sollte beachten, dass ich auf Ubuntu Lucid bin, das für einige der Dateisystemkommentare relevant ist.Kann ich diesen Gitfehler beheben? "fatal: Duplicated ref, und SHA1s stimmen nicht überein: refs/heads/BranchName"

Ich habe diesen Fehler direkt nach dem Ausführen eines git Pull Ursprungs-Master während lokal auf Master. Ziemlich übliche Sache zu tun. Der Pull selbst schien zu funktionieren, ich sah die Liste aller heruntergezogenen Dateien. Aber nichts danach hat.

Ich sah mir einige der anderen Antworten auf SO an, aber alle beinhalten die Ausführung eines Git-Befehls. An diesem Punkt kann ich keinen git Befehl ausführen, einschließlich fsck. Ich bekomme nur die gleiche Nachricht. Ich wurde vorgeschlagen, dass ich .git/refs/heads/BranchName lösche, aber es hat nicht funktioniert. Obwohl ich eine interessante Sache sah: Das einzige Ding in/refs/heads war der schlechte Zweig, mit einem? am Ende (wahrscheinlich ein unbekannter Charakter). Keine anderen Zweige sind dort aufgeführt.

Ich hatte Probleme in der Vergangenheit, wo Git Fsck fehlschlagen würde, und dann war es magisch wieder in Ordnung. Klingt sehr nach HD-Ausfall, aber der lange Test von smartctl hat mir nichts Schlechtes gesagt, als das vorher passierte. Ich habe gerade den schnellen Status-Check versucht und es scheint immer noch in Ordnung zu sein.

Keine große Sache, ich kann neu klonen. Ich habe nicht viel verloren. Aber es wäre schön, es zurückzubekommen, und dies auch für andere, die das gleiche Problem haben.

Danke.

+0

Können Sie Dateien in .git/refs/heads/pls auflisten und deren Inhalt ausgeben? – KurzedMetal

Antwort

2

Ich habe es geschafft, das Problem zu reproduzieren: die Datei .git/packed-refs hat zwei Einträge für refs/heads/BranchName und sie haben verschiedene SHAs, git weiß nicht, welche ist die richtige und hinterlässt Ihre mit diesem fatalen Fehler.

Löschen Sie eine von ihnen, um den Konflikt zu lösen, Ihre BranchName Verzweigung endet möglicherweise auf eine nicht vorhandene Commit, aber Sie können Git Befehle erneut ausführen.

+0

Ausgezeichnet, danke! Ich brauche diesen bestimmten Zweig eigentlich nicht, also ist es kein Verlust. – orblivion

+0

Sehr interessant. Was hat dieses Problem verursacht? War es wirklich ein HD-Fehler? –

Verwandte Themen