2012-09-04 5 views
34

아마존 EC2 머신이 있습니다. 이 컴퓨터에서 github repo의 이전 버전을 복제하고 싶습니다. 일반적으로 git clone을 사용합니다. https://linktomyrepo.git 14 일 전의 업데이트를 어떻게 이전 버전으로 복제 할 수 있습니까? 저장소의 커밋 내역에 필요한 정확한 버전을 볼 수 있지만이를 EC2 시스템에 복제하는 방법을 알지 못합니다. 각 커밋 옆에 작은 SHA 코드를 사용해야합니까?github repo의 이전 버전 복제

답변

43

언제든지 커밋 해시를 사용하여 원하는 모든 상태를 체크 아웃 할 수 있습니다.

예를 들어 로그를보고 233ab4ef가 관심있는 주인임을 확인한 후 git checkout 233ab4ef을 발행하여 해당 주를 체크 아웃하십시오.

이를 달성하는 또 다른 방법은 그런 식으로 설계되지 않았습니다 git checkout @{14.days.ago}

+0

'git checkout @ {14.days.ago}'의 '14'는 무엇입니까? – Shafizadeh

+0

복제 할 날이 며칠 전인 것처럼 보입니다. 그것이 당신이 묻고있는 것이 아니라면 사과하십시오. 이 권리를 읽으면 "오늘부터 14 일 전에 보였던 것을 기반으로 한 repo 복제"라고 표시됩니다. – jrb

25

힘내을 사용하는 것입니다. 저장소를 복제하면 모든 버전이 복사됩니다.

먼저 저장소 (처음에는 최신 버전을 체크 아웃 함)를 복제 한 다음 실제로 원하는 버전을 체크 아웃하십시오.

해시를 기반으로 커밋을 체크 아웃 할 수 있습니다.

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'을 다음과 같이 사용할 수 있습니다 : 예 노드 저장소에서'git cat-file tag v4.4.7'을 사용하여 커밋 문자열 '0974fc6a25c343744235331eb20d31f6412ff7e1'을 보여줄 수 있습니다. :) – Dobz

관련 문제