2010-12-29 3 views
2

Ich verwende das großartige Git für Windows und möchte alte Versionen einer Datei erhalten. Ich meine, dass ich die gesamte Datei bekommen möchte und nicht nur den Code in einer Vorschau anzeigen möchte.Git für Windows: ältere Verisons der Datei bekommen?

+0

Ein nützliches Lernwerkzeug für einige Windows-Benutzer ist die Verwendung von Tortoise Git. Verwenden Sie es als letzten Ausweg, aber es funktioniert ziemlich gut - zusätzlich zeigt es Ihnen die Befehle, die es verwendet, um eine Aufgabe zu erfüllen, damit Sie Tortoise später nicht verwenden müssen. Außerdem verwendet Tortoise nicht immer den einfachsten Weg, um es zu erreichen, aber es ist ein guter Weg, um den richtigen Weg zu finden. – vcsjones

Antwort

4

Der einfachste Weg, dies zu tun, ist nur eine Revision durch Hash der gewünschten Datei, oder die Änderung und gehen Sie zurück.

Verwenden gitk den Hash-Wert des begehen zu finden, dass Sie interessiert sind.

Sie können dann git checkout hashhere verwenden. Dadurch wird Ihr gesamtes Repository auf diesen Hash zurückgesetzt. Wenn Sie nur eine bestimmte Datei verwenden möchten, verwenden Sie git checkout hash filepath.

Zum Beispiel:

git checkout 4fda14eefe0388e836aac8feaca68ab18bfad6b1 path/to/file.c 

Wenn alles, was Sie tun möchten, eine Datei ist zu sehen und es woanders sparen ab, ist git show fähig, das zu tun, git show hash:filepath und Rohr irgendwo Sie wollen sparen es:

git show 4fda14eefe0388e836aac8feaca68ab18bfad6b1:path/to/file.c > savetohere.txt 

Sie auch Baum-ish, um die Anzahl der Revisionen zurück gehen können, aber auch:

git show master~2:path/to/file.c > savetohere.txt 

Was im Grunde sagt, "2 Revisionen vor dem Master-Zweig, zeigen Sie die Datei path/to/file.c und Pipe die Ergebnisse zu savetohere.txt."

+2

Die Parameter sind umgedreht, es ist "git checkout hash Dateipfad", nicht "git checkout Dateipfad Hash" –

+0

Huch! Vielen Dank! Festsetzung. – vcsjones

+0

Wenn ich eine einzelne Datei auschecke, wird sich das nicht auf meine Sicherheit auswirken? Alles was ich will ist eine Kopie der Datei x in Revision y. Ersetzen Sie die aktuelle Revision nicht durch die alte. – mmersz

Verwandte Themen