2010-09-24 4 views
17

Ich versuche, ein Git-Repository von einem bestimmten Datum zu klonen. Auch wenn das nicht möglich ist. Ist es möglich, das Git-Repository zu klonen und es dann auf ein bestimmtes Datum zurückzurollen?Wie in Git, klonen ein Remote (GitHub) Repository von einem angegebenen Datum

Beispiel: Mein Repository wurde seit Mai 2010 aktualisiert, aber ich möchte die Version vom 5. Juni erhalten. Ich möchte den folgenden Befehl auszuführen:

git clone [email protected]:projectfolder -date 06-05-2010 

Antwort

21

das Repository Klonen wird Ihnen die gesamte begehen Geschichte aller Quellcode.

Sie müssen nur durch git log zurückblättern und finden Sie die gewünschte Festschreibung an Ihrem Zieldatum. Wird git checkout SHA ausgeführt, wobei SHA der Commit-Hashwert ist, erhalten Sie den Status des Quellcodes an diesem Datum.

edit:

git log --since=2010-06-05 --until=2010-06-06 wird es helfen, verengen!

3

können Sie git des revert Befehl verwenden, um alle zu dem Zeitpunkt zurückkommen verpflichten zurück, die Sie suchen, oder Sie können nur aa Niederlassung an der Commit erstellen Sie interessiert sind

+1

+1 für die Verzweigung –

+3

Reverting wird jede neuere Geschichte aufgeben, die nie eine gute Option ist. Abzweigung von der Verpflichtung immens bevorzugt zurückzuziehen. –

+0

Dies ist destruktiv und es gibt viel bessere Möglichkeiten, es zu tun. – Daenyth

4

Vielleicht so etwas wie folgt aus:.

git log --since=2010-06-05 --until=2010-06-05

Finden einer der ids verpflichten Sie es mögen, dann tun ein git checkout <checkout id>

+3

Verdammt. Ich habe meine Antwort bearbeitet, um den genauen Befehl hinzuzufügen, als Sie geantwortet haben! –

+5

hehe, passiert das Beste von uns :) –

1

folgende Commits Bedenken Sie:

5 May (A) -- 7 May -- master (current) 
5 May (B) -- 7 May/

Es gibt keine Möglichkeit git kann herausfinden, ob Sie A oder B commit wollen. Also, sollten Sie git log oder gitk verwenden, um die SHA1 des Commits von dem gewünschten Datum und dann git checkout es zu erhalten.

4
git clone [email protected]:projectfolder 
git reset --hard $(git rev-list -1 $(git rev-parse --until=2010-06-06) master) 
Verwandte Themen