Die von "Git Stash" (d. H. Die aktuelle Version des Arbeitsbaums und den Inhalt von .git/index) gespeicherten Daten werden als zwei Commit-Bäume gespeichert.
Ein Commit-Tree enthält einen Snapshot des aktuellen Status des Arbeitsbaums. Es gibt einige knifflige Bits hier, siehe unten.
Der andere Commit-Baum, wurde mir gesagt, wird verwendet, um eine Momentaufnahme des Inhalts von .git/index zum Zeitpunkt des Verstecks zu speichern. Ich habe das (noch) nicht tief genug untersucht, um zu verstehen, wie das eine in das andere übersetzt wird.
.git/refs/stash enthält den Hashwert für den Commit-Baum, den der Stash erstellt hat.
.git/logs/refs/stash enthält einen replogartigen Teil der Metadaten zu den Stashes vor dem in .git/refs/stash.
.git/index enthält eine Liste von Einträgen, einen für jede Datei im Arbeitsbaum. Diese Einträge enthalten den vollständigen Pfad und Dateinamen sowie zwischengespeicherte Metadaten über die Datei, sowohl Dateisystem-Metadaten als auch git-bezogene Metadaten.
"git add" fügt dem Objektspeicher eine Kopie einer Datei hinzu und legt das Staging-Flag für diese Datei in .git/index fest.
Für "git stash", um einen Commit-Baum zu erstellen, müssen Dateien, die geändert (bearbeitet), aber noch nicht mit "git add" bereitgestellt wurden, zum Objektspeicher hinzugefügt werden. "git stash" erstellt dazu eine temporäre Indexdatei.
Haben Sie sich die Dokumentation angesehen? Stash wird lokal in 'refs/stash' gespeichert. Hast du jemals jemand anderes auf deinem Computer versteckt gesehen? Ich denke nicht. Hast du jemals versucht, einen Vorrat zu schieben? Es ist nicht möglich. Wenn der Klon des lokalen Repositorys nicht mehr vorhanden ist, sind Ihre Speicherbereiche verschwunden. – DanFromGermany
Das ist es. Ich habe die Dateien jetzt zurück. Vielen Dank – Typhoon101