Ich habe eine Datei mit Git gelöscht und dann festgeschrieben, sodass die Datei nicht mehr in meiner Arbeitskopie enthalten ist. Ich möchte den Inhalt dieser Datei anzeigen, aber nicht wiederherstellen. Wie kann ich das machen?
104
git show HEAD^:path/to/file
Sie können eine explizite Festschreibungskennung verwenden oder HEAD~n
ältere Versionen anzeigen oder wenn seit dem Löschen mehr als eine Festschreibung stattgefunden hat.
path/to/file
vollständige Pfad vom Anfang des Projekts (oberstes Verzeichnis des Repositorys) ist.fatal: Invalid object name 'HEAD^'.
(ich muss erwähnen, dass ich nur "Initial Commit" habe)Wenn dies eine Datei ist, die Sie vor einiger Zeit gelöscht haben und nicht nach einer Revision suchen möchten , können Sie Folgendes verwenden (die Datei wird
foo
in diesem Beispiel benannt; Sie können einen vollständigen Pfad verwenden):Der
rev-list
Aufruf sucht nach allen Revisionen vonfoo
, listet jedoch nur eine auf. Darev-list
Listen in umgekehrter chronologischer Reihenfolge aufgeführt sind, wird die letzte geänderte Revision aufgelistet. Diesfoo
wäre das gelöschte Commitfoo
. (Dies basiert auf der Annahme, dass git nicht zulässt, dass eine gelöschte Datei geändert wird und dennoch gelöscht bleibt .) Sie können nicht einfach die Revision verwenden, dierev-list
unverändert zurückgegeben wird, da sie dortfoo
nicht mehr vorhanden ist. Sie müssen nach der unmittelbar davor stehenden fragen, die die letzte Revision der Datei enthält, daher die^
ingit show
.quelle
**/foo
wenn Sie den Pfad nicht kennen (dies funktioniert für den Befehl rev-list, jedoch nicht für den Befehl show. Mit dem Commit aus dem Befehl rev-list können Sie dann den Pfad finden).Da Sie sich möglicherweise nicht an den genauen Pfad erinnern, können Sie stattdessen sha1 aus dem Git-Protokoll abrufen und dann einfach ausgeben
quelle
git whatchanged --no-abbrev
liefert eine Ausgabe ähnlich der von git (oder svn) log.