2012-09-04 226 views
34

我有一臺Amazon EC2機器。我想在這臺機器上克隆舊版本的github repo。通常我使用git clone https://linktomyrepo.git如何克隆一個較舊的版本,比如14天前的更新?我可以在存儲庫的提交歷史記錄中看到我需要的確切版本,但不知道如何將其克隆到EC2計算機上。我需要在每個提交旁邊使用小的SHA代碼嗎?克隆舊版本的github回購

回答

43

您可以隨時使用提交散列簽出您喜歡的任何狀態。

例如,通過查看日誌,您確定233ab4ef是您感興趣的狀態,請發出git checkout 233ab4ef來檢出該狀態。

另一種方式實現這一目標是通過使用git checkout @{14.days.ago}

+0

'git checkout @ {14.days.ago}'中的'14'究竟是什麼? – Shafizadeh

+0

它看起來像你想克隆的天數。道歉,如果這不是你問的。這說「如果我閱讀這個權利,基於它從14天前看起來像是從今天看來的回購」。 – jrb

25

Git是不是這樣設計的。在克隆存儲庫時,您正在複製所有版本。因此,首先克隆一個存儲庫(最初檢查最新版本),然後檢出您實際需要的版本。

您可以檢出基於散列的提交。

git checkout afe52 

您也可以根據日期結帳(而不是仰視哈希),例如:

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

要檢查您可以檢出的提交,使用git log

+1

如果有數千次提交,該怎麼辦?什麼是查看所有標籤發佈的最快方式?對於諸如版本1,2,3等的內容說明 – anon58192932

+1

@ anon58192932查看所有可以使用'git tag'的標籤並查看該特定標籤的詳細信息,則可以使用'git cat-file tag TAG_NAME'例如,我可以在節點repo中使用'git cat-file tag v4.4.7',讓我看到提交字符串'0974fc6a25c343744235331eb20d31f6412ff7e1'。 :) – Dobz