1100 Stimmen

Wie kann eine einzelne Datei aus einer bestimmten Revision in Git abgerufen werden?

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 >

0voto

rocketInABog Punkte 61

Holen Sie sich die Datei aus einem vorherigen Commit durch Auschecken des vorherigen Commits und Kopieren der Datei.

  • Notieren Sie, in welchem Zweig Sie sich befinden: git branch
  • Checken Sie den gewünschten vorherigen Commit aus: git checkout 27cf8e84bb88e24ae4b4b3df2b77aab91a3735d8
  • Kopieren Sie die gewünschte Datei an einen temporären Speicherort
  • Überprüfen Sie die Verzweigung, mit der Sie begonnen haben: git checkout theBranchYouNoted
  • Kopieren Sie die Datei, die Sie an einem temporären Ort abgelegt haben, hinein
  • Übertragen Sie Ihre Änderung an git: git commit -m "added file ?? from previous commit"

-2voto

bobt Punkte 1

Wenn Sie es vorziehen, die grafische Benutzeroberfläche dafür zu verwenden, funktioniert das Folgende, wenn Sie wissen, wann die Datei ungefähr geändert wurde.

Unter Visual Studio mit installierter Git-Erweiterung:

  1. Git -> Zweigverlauf anzeigen
  2. Klicken Sie mit der rechten Maustaste auf den Commit, in dem die Datei geändert wurde, und wählen Sie dann Commit-Details anzeigen
  3. Klicken Sie in der Liste der Änderungen auf der rechten Seite auf die betreffende Datei. Sie sehen dann einen Vergleich des gesamten Dateiinhalts vor und nach der Änderung. Wählen Sie einfach alles aus, kopieren Sie den Dateiinhalt und fügen Sie ihn an der gewünschten Stelle ein.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X