Hier ist mein Fall:
Aber plötzlich, nachdem ich git checkout master
command eingegeben hatte, traf mein Computer auf den blauen Bildschirm des Todes und es kam zu einer unerwarteten Kraftabschaltung. Nachdem ich meinen Computer gestartet habe, habe ich den Status meines aktuellen Zweiges überprüft und als Ergebnis habe ich jede Datei als neue Dateien markiert.
Jetzt bin ich an diesem Punkt fest und nach git log
Befehl bekomme ich Fehler
Wie kann ich dieses Problem lösen und meinen Zweig wiederherstellen?.
Ich arbeite mit Windows 7 und git bash neueste Version
Bearbeiten: Ich möchte diesen Zweig nicht löschen.
Ich treffe ein ähnliches Problem unter Windows 7. In meinem Fall wurde die aktuelle Datei ( ./git/HEAD
) unter \.git\refs\heads
abgebrochen.
Ich habe den Hash-Code des defekten aktuellen Zweiges in .git\logs\refs\heads
mit dem gleichen Verzweigungsnamen gefunden.
Und ich habe das Problem behoben, indem ich diese Datei ( .git\logs\refs\heads\xxx
) per Notizblock geöffnet habe und die 4. Nummer (den Hash-Code) nach ( .git\refs\heads\xxx
) kopiert habe
Die Dateien im Verzeichnis .git \ refs \ heads sind Ihre Zweige. Überprüfen Sie diese Dateien. Sie sollten nur einen SHA-1-Hash für einzelne Commit-Objekte enthalten. Dieser Hash ist Ihr letzter SHA-1 Schlüssel und Ihr HEAD gleichzeitig.
Kopieren Sie die SHA-1-Taste und geben Sie
ein %Vor%Die zweite Ausgabe ist, was ein Commit-Objekt grundsätzlich enthält. Versuchen Sie zu überprüfen, ob das Commit-Objekt in Ihrem Master-Zweig unter .git \ refs \ heads \ master und seine Baum- und Eltern-SHA-1-Schlüssel nicht beschädigt sind.
Sogar einige Apostrophe innerhalb Ihrer Hauptverzweigungsdatei führen in einen "gebrochenen Zweig". Es darf nur das letzte Commit-Objekt SHA-1 Hash und nichts anderes enthalten.
Dieser Fehler tritt möglicherweise auf, wenn Sie versuchen, einen Zweig in einen Namespace- (oder Ordner-) Zweig umzubenennen.
Wenn das passiert, gehen Sie in die Verzeichnisse .git/logs/refs/heads/<name>
und .git/refs/heads/<name>
und Sie sehen, dass Ihr Zweig jetzt ein Ordner mit einer darin enthaltenen Datei ist.
Verschieben Sie in beiden Ordnern die Datei auf die Ebene des Ordners, überprüfen Sie diesen Zweig, löschen Sie die jetzt leeren Ordner, und jetzt sollten Sie git checkout -b <name>/<subname>
ohne Fehler oder git branch -M <name>/<subname>
ausführen können.
Ihr Zweigname enthält jetzt wahrscheinlich einige Sonderzeichen oder etwas ähnliches.
Sie sollten in das root-Verzeichnis Ihres check-out gehen (wo sich das .git/
-Verzeichnis befindet) und
.git/packed-refs
; Wenn Sie eine Zeile mit Ihrem Zweignamen sehen, löschen Sie ihn .git/refs/heads for
eine Datei, die nach deinem Zweig benannt ist; wenn du
siehe eins, lösche es Hatte das gleiche Problem. Das Entfernen von .git \ refs \ heads \ behob das Problem für mich.
Tags und Links git git-branch git-log fatal-error blue-screen-of-death