Ich habe große Probleme mit einem Git-Repository auf meinem lokalen Rechner.
Ich habe eine Datei geändert, git status
ausgeführt und die Datei wurde als geändert angezeigt. Ich habe die Datei mit git add .
hinzugefügt und es funktionierte wie immer. Aber als ich die Änderungen bestätigen wollte, bekam ich folgenden Fehler:
Durch Ausführen von git cat-file -t e91ce852822d32e380ed7ddd04c93066e3c600ea
kann ich sehen, dass das Objekt ein Baum ist.
Ich habe mehrere Lösungen zur Reparatur eines fehlerhaften Blobs oder Commits gesehen, aber dies ist ein Baum, und ich kann keine Antwort darauf finden, was schief gelaufen sein könnte oder wie ich es beheben könnte.
Jede Hilfe wird geschätzt:)
Was schief gehen könnte, ist schwer zu sagen und hängt von Ihrer Git-Version und Umgebung ab.
Zum Beispiel gab es in den alten Tagen ein zlib-Problem mit git1.5.1 , das ausgelöst wurde Diese Art von Nachricht aufgrund einer legacyheaders = false
-Einstellungen.
Wie zum Wiederherstellen eines Baumes aus losen Objekten , diese SO Antwort " Wie man Git-Objekte wiederherstellt, die durch Festplattenfehler beschädigt wurden? "zeigt eine Möglichkeit, dies zu tun, nachdem ein git fsck --full
(als Mark Ruschakoff erwähnt in dem Kommentar) wurde durchgeführt.
und überprüfen Sie den Typ des Objekts.
Wenn es sich bei dem Typ um eine Baumstruktur handelt, können Sie 'git ls-tree' verwenden, um die Baumstruktur aus früheren Sicherungen wiederherzustellen. dann '
git mktree
', um es erneut in Ihr aktuelles Repository zu schreiben.
Aber nehmen wir an, diese Objekte entweder in älteren Paketen oder in Repository-Backups zu finden.
Guten Morgen, für meinen Teil, ich habe gerade das Git-Verzeichnis gelöscht und Git neu initiieren.
Tags und Links git