Ich habe ein Git-Repository und würde gerne sehen, wie einige Dateien vor einigen Monaten aussahen. Ich habe die Revision zu diesem Datum gefunden; sie lautet 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8
. Ich muss sehen, wie eine Datei aussieht, und sie auch als ("neue") Datei speichern.
Ich konnte die Datei mit gitk
aber es gibt keine Möglichkeit, sie zu speichern. Ich habe es mit den Befehlszeilen-Tools versucht, das Naheliegendste, was ich bekam, war:
git-show 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8 my_file.txt
Dieser Befehl zeigt jedoch einen Vergleich und nicht den Inhalt der Datei an. Ich weiß, dass ich später etwas verwenden kann wie PAGER=cat
und die Ausgabe in eine Datei umleiten, aber ich weiß nicht, wie ich an den eigentlichen Dateiinhalt komme.
Im Grunde suche ich etwas wie svn-Kat .
111 Stimmen
Der Schlüssel dazu:
git show
verwendet (wenig hilfreich) eine andere Syntax mit einem Doppelpunkt.git show 2c7cf:my_file.txt
5 Stimmen
Zur weiteren Verdeutlichung: Mit dem obigen Befehl wird git aufgefordert, zwei separate Objekte anzuzeigen, eine Revision und eine Datei. Die akzeptierte Antwort unten, die einen Doppelpunkt zwischen den beiden Objekten verwendet, fragt nach einer bestimmten Datei in einer bestimmten Revision.
2 Stimmen
Unter *nix brauchen Sie kein PAGER, sondern nur eine Umleitung der Shell-Ausgabe mit
>
1 Stimmen
Mögliche Duplikate von Gibt es einen schnellen Git-Befehl, um eine alte Version einer Datei zu sehen?
0 Stimmen
Checat hat einen wichtigen Hinweis für diejenigen, die den Inhalt in eine Datei exportieren wollen. Sie brauchen etwas wie dieses: git show {sha}:my_file.txt > old_my_file.txt
0 Stimmen
Basierend auf dem Titel der Frage, dies scheint die richtige Antwort zu sein . Basierend auf dem restlichen Inhalt der Frage, diese Antwort am nützlichsten erscheint. Ich brauchte ein paar Minuten, um zu erkennen, dass die beiden ziemlich unterschiedlich scheinen, hoffentlich spart dieser Kommentar Zeit für andere.
0 Stimmen
@rbatt Nicht mehr ganz: das wäre (heute, 2019)
git restore
, nichtgit checkout
. Siehe meine bearbeitete Antwort .0 Stimmen
Wenn Sie eine Antwort auf die Frage suchen, wie Sie alle Dateien unter einem Unterverzeichnis in einer Git-Historienrevision abrufen können, lesen Sie dies: stackoverflow.com/a/62342847/94148