Ich löschte versehentlich .git/index
, gibt es eine Möglichkeit, es wiederherzustellen? Es ist endgültig gelöscht. Ich habe noch nichts zugesagt.Wie `.git/index` lokal wiederherstellen?
Antwort
Ich glaube nicht, dass das möglich ist, nicht über git
auf jeden Fall (Sie können versuchen, in Ihrem Papierkorb Verzeichnis oder was auch immer Mittel zur Wiederherstellung Ihres Dateisystems bietet). Sie erhalten jedoch einen neuen Index, sobald Sie etwas tun oder etwas anderes tun, das den Index benötigt.
Wenn Sie eine der Dateien verloren haben, die Sie git add
ed haben, können Sie durch ./git/objects gehen (find .git/objects/ -type f |sed 's:\.git/objects/::; s:/::'
), den Inhalt jeder mit git cat-file -p $the_hash
überprüfen, und wenn Sie die verlorenen einer gefunden haben , leiten Sie die Ausgabe in eine Datei um.
(Wenn Sie git add
, ein Dateinamen-Eintrag zu .git/index
geht und der Inhalt der Datei gespeichert zu bekommen in .git/objects/
. Git-Index setzt sich aus den Dateinamen Einträge eines Objekts Möchtegern-Baum gemacht, die erstellt wird, wenn Sie commit
. Sie sehen können eine für Menschen lesbare Darstellung des Indexes mit git ls-files --stage
).
Der Index hat ein bisschen mehr Zeug, aber ja, es ist im Grunde ein Cache von Name-und-Hash-es. Der Vollständigkeit halber sei erwähnt, dass der Index vier mögliche "Slots" pro Name hat: Die Slots 1-3 werden nur während einer konflikthaften Zusammenführung verwendet und der Slot 0 ist der Punkt, an dem der normale Next-Make-to-make-Eintrag abläuft. – torek
Sie können den Index zum letzten Checkout mit git reset
wiederherstellen. Alle Inhalte, die Sie seither hinzugefügt haben, werden immer noch hinzugefügt, sie befinden sich im Repository, aber der Index war der einzige Ort, an dem die Zuordnung von Pfad und Inhalt aufgezeichnet wurde. Sie können git fsck nicht erreichbare Objekte in ein verlorenes Verzeichnis löschen lassen, siehe its docs, dann ist der schnellste Weg über vertrautes Gebiet, den Inhalt einfach wieder in den Arbeitsbaum zu legen und wieder hinzuzufügen, git wird den Inhalt nicht duplizieren wird den Indexeintrag wiederherstellen.
die Indexdatei neu zu erstellen, können Sie diese beiden Befehle versuchen:
git reset # re-scan the working directory
git add -u # update the index
- 1. wiederherstellen/wiederherstellen Tabelle
- 2. Wiederherstellen und Wiederherstellen Szenario
- 3. Wie überprüfen Sie die socket.io-Verbindung lokal?
- 4. Wie Standard-Homepage wiederherstellen?
- 5. Wie mysql Datenbank wiederherstellen
- 6. Mongodb einige Sammlungen wiederherstellen
- 7. Wie Postgres laufen lokal
- 8. Wie lokal eslint Plugins bekommen mit lokal installierten eslint Plugins
- 9. Wie Standard-Heroku-Umgebungsvariablen wiederherstellen?
- 10. Wie gelöschte Facebook-App wiederherstellen?
- 11. Wie gelöschte Build-Definition wiederherstellen
- 12. TortoiseGit - Wiederherstellen?
- 13. Wiederherstellen Anwendungsstatus
- 14. Gelöschte Datei in sublime Text 3.0 wiederherstellen?
- 15. Sichern und Wiederherstellen von Redis auf Heroku
- 16. Projekteinstellungen in XCode wiederherstellen
- 17. Geonames-Dienst lokal verwenden
- 18. Wiederherstellen OpenGL-Status
- 19. Standard-CSS-Attribute wiederherstellen
- 20. Wie minimiert/Wiederherstellen eines Fensters in C#
- 21. Wie postgresql db auf Heroku wiederherstellen
- 22. Wie Sie Daten von abgeschnittenen Tabelle wiederherstellen
- 23. Wie gelöschte Zeilen aus MYSQL-Datenbank wiederherstellen
- 24. Wie Postgres Dump mit RDS wiederherstellen?
- 25. clearcase: wie man ein Verzeichnis wiederherstellen
- 26. Wie postgreSQL-Dump-Datei mit pgAdmin wiederherstellen?
- 27. Visual Studio 2015 Wie Pakete wiederherstellen?
- 28. Wie Wiederherstellen eines gelöschten Zweigs in TFS?
- 29. Wie hdfs von HA zweiten namenode wiederherstellen?
- 30. Wie ich mein AWS-Konto wiederherstellen kann
seine so eine saubere Repository - nur das gesamte Verzeichnis löschen und eine neue Repo erstellen? –
Hatten Sie dem Index noch etwas hinzugefügt? Gab es bestimmte Versionen von Dateien, die Sie wiederherstellen wollten, die zwar inszeniert wurden, sich aber von der Kopie auf dem Arbeitsbaum unterscheiden? –