2014-10-28 2 views
1

특정 커밋이 완료되기 전에 git 저장소 지점의 버전을 체크 아웃하고 싶습니다. 그냥 구문에 대해 궁금해.git checkout 특정 커밋 이전의 버전

나는 다음과 같은 구문을 사용하여 (마스터 반대) '개발'이라는 브랜치를 체크 아웃하는 방법을 알고 :

git remote add -t develop -f origin https://github.com/xy/xy.git 

그냥 내가이 체크 아웃 할 수 있지만 특정 커밋하기 전에 행해졌는지 궁금 몇 주 전.

답변

0

리포지토리를 복제 한 후 git log을 실행하고 체크 아웃하려는 커밋의 커밋 해시를 찾습니다. 처음 6 자만 필요하므로 a93fh67과 같습니다. 거기서부터

git checkout {hash} 

여기서 {hash}은 발견 된 커밋 해시입니다. 그러면 DETACHED HEAD 상태가되며 코드를 검토 할 수 있습니다. 변경을 원할 경우

git checkout -b MyNewBranchName 
+1

을 사용하여 새 분기를 체크 아웃합니다. OP가 특정 커밋의 * parent *를 묻는 것으로 생각합니다. 일반적으로 '^'를 사용하여 완료됩니다. 'abcd123 ^'. 병합 커밋의 경우'git show abcd123^@'와 같은 것을 사용하여 모든 부모를 나열하는 것이 유용 할 수 있습니다. – Chris

+0

나는 원격 복제 대신에 clone을 만들었지 만 그 차이점을 보지 못했다. 그런 다음 git log를 실행했을 때 다음과 같은 오류가 발생했습니다. "치명적 : 잘못된 기본 개정판 'HEAD'" –

+0

@Chris 당신이 맞습니다. 로그를 검사하고 "특정 커밋"의 부모 인 커밋을 찾을 것이라고 가정했지만 "특정 커밋"을 찾아서^구문을 사용할 수 있습니다. –