코드/Git

[Git] 특정버전으로 돌아가기

Yeah-Panda 2015. 6. 17. 14:58

출처 : http://mytory.net/archives/10078/

이번 한 번으로 끝날게 아니라 기간 혹은 회별로 게시판리스트화해서 이전 진행했던 공모전도 이용자로 하여금 볼수 있도록 해야한다 라고했었다.

하지만 이번 한 번만 진행될지 어떻게 될지 모른다며, 지금 당장은 빨리 처리하자라는 식의 주먹구구식으로 진행할때 미리 준비해뒀어야 했었나 보다.

저번 회 공모전 갤러리 파일에 그냥 이번 신규 공모전 리스트페이지를 그대로 작성했다.

그럼 지난회 정보는 날아감....

나의 부주의도 있었지만 실컷 git으로 버전 관리 하면서도 만날 커밋만 했지, 롤백시켜 본 경험이 그다지 없어서 막상 파일을 롤백하려니 이래저래 삽질 중이었다 그러다 보니 알게 된 것들.

git checkout HEAD~1

일단 이렇게 하면 working directory 와 staging area를 모두 1단계 전 커밋으로 돌려 준다.

사실 브랜치 변경 용도로만 사용했던 명령어였고, 복원 명령어 리스트에도 있는 걸 봤지만

딱히 활용도를 알기 힘들었었다.

그런데 이렇게 쓰이는구나..

당연하겠지만 HEAD~ 뒤의 숫자는 몇단계로 돌아갈지의 개수다.

git checkout HEAD~10 

10단계 전 커밋으로 돌아간다.

다시 돌아오는 방법은

git checkout master

마스터 브랜치로 돌아오는 명령인데, 마스터 브랜치가 아닌 다른 브랜치명을 적어도 상관없댄다.

해당 브랜치로 복귀하게 된다. 신비롭다.


특정 커밋으로 돌아가기.

뭐 이런 로그가 있다.

commit a1d1bfe13a54a53ed8d6dd02c8ba08f4e6a96315
Author: Wasabi 
Date:   Tue Jun 16 10:08:29 2015 +0900

    커밋 3

commit 9d51a775c60d2358313645a6364975279cb2d28f
Author: Wasabi 
Date:   Mon Jun 15 16:36:37 2015 +0900

    커밋 2

commit dfdebeb772aa40af8cb2875fcb50143b17ca787f
Author: Wasabi 
Date:   Wed May 6 11:49:16 2015 +0900

    커밋 1


각각 commit 해시값이 있다.  이 고유번호의 앞 6자리만 적어 주면 알아서 식별을 한다..

여지껏 괜히 다 긁어다 붙였네..

커밋 2로 돌아가고 싶으면

git checkout 9d51a7

이러면 된댄다. 좋네.