2013-09-26 19 views
5

Sagen wir, ich habe ein Repo mit mehreren Banches.Schnappschuss von einem Git Repo an einem bestimmten Datum

Ist es möglich, den Repo-Snapshot eines bestimmten Datums/Zeit mit gewöhnlichen Git Foo zu bekommen? (Wir haben derzeit Code jeden Tag Dumps, und ich denke an Möglichkeiten, das entfernen)

(keine Verzweigungen Unter der Annahme, dauerhaft gelöscht werden und die git commit Geschichte wurde nicht gespielt)

Edit: Interim Branch Merges sind möglich.

Antwort

6

Vorsicht vor dem @{<date>}, basierend auf dem Reflog (dh, standardmäßig auf 90 Tage begrenzt).
Siehe "Specifying Revisions" in git rev-parse.

"git checkout by date", schlägt eine andere Methode:

git checkout `git rev-list -n 1 --before="2013-09-25 5:00" master` 

Hinweis this warning though:

rev-list funktioniert nicht, wenn Sie irgendwelche Zweige verschmolzen haben.
Zum Beispiel: Ich wollte wieder auf V5 Zweig gehen, aber endete in V4.2 Zweig.

Eine robustere Art und Weise würde --first-parent hinzuzufügen:

git checkout `git rev-list -n 1 --first-parent --before="2013-09-25 5:00" master` 
+0

Branche verschmilzt möglich sind. Habe die Frage bearbeitet. –

+1

@ ansh0l Ich habe * gerade * meine Antwort bearbeitet, um das zu beantworten. – VonC

Verwandte Themen