2012-09-04 18 views
34

Ich habe eine Amazon EC2-Maschine. Ich möchte eine ältere Version von Github Repo auf dieser Maschine klonen. Normalerweise verwende ich Git Klon https://linktomyrepo.git Wie kann ich eine ältere Version klonen, sagen ein Update von vor 14 Tagen? Ich kann die genaue Version sehen, die ich im Festschreibungsverlauf des Repository benötige, weiß aber nicht, wie ich es auf den EC2-Rechner klonen kann. Muss ich den kleinen SHA-Code neben jedem Commit verwenden?Klonen einer älteren Version von Github Repo

Antwort

43

Sie können jederzeit einen Status überprüfen, indem Sie einen Commit-Hash verwenden.

Wenn Sie beispielsweise im Protokoll nachgesehen haben, dass 233ab4ef der Status war, an dem Sie interessiert waren, geben Sie git checkout 233ab4ef aus, um diesen Status zu überprüfen.

Ein anderer Weg, dies zu erreichen ist durch git checkout @{14.days.ago}

+0

was ist '14' in' git checkout @ {14.days.ago} 'genau? – Shafizadeh

+0

Es sieht aus wie die Anzahl der Tage, die Sie klonen möchten. Entschuldigung, wenn Sie das nicht gefragt haben. Das sagt "Klon das Repo basierend auf, wie es vor 14 Tagen von heute aussah", wenn ich dieses Recht lese. – jrb

25

Git nicht so ausgelegt ist. Wenn Sie ein Repository klonen, kopieren Sie alle Versionen.

Also klonen Sie zuerst ein Repository (das zunächst die neueste Version auscheckt), dann checken Sie die Version, die Sie tatsächlich wollen.

Sie können das Commit basierend auf dem Hash überprüfen.

git checkout afe52 

Sie können auch basierend auf Datum Kasse (statt der Hash-aufzublicken), zB:

git checkout '[email protected]{1979-02-26 18:30:00}' 
git checkout @{14.days.ago} 

Um die Commits überprüfen Sie Prüfung können, verwenden git log.

+1

Was ist, wenn es Tausende von Commits gibt? Was ist der schnellste Weg, um alle markierten Veröffentlichungen zu sehen? Sagen Sie für Dinge wie Version 1, 2, 3, usw. – anon58192932

+1

@ anon58192932 um alle Tags anzuzeigen, die Sie 'git tag' verwenden können, und um die Details dieses spezifischen Tags anzuzeigen, können Sie' git cat-file tag TAG_NAME' für verwenden Beispiel Ich könnte 'git cat-file tag v4.4.7' im Knoten repo verwenden, um mir den Commit-String' 0974fc6a25c343744235331eb20d31f6412ff7e1' anzuzeigen. :) – Dobz

Verwandte Themen