git의 상대참조(HEAD~, HEAD^)


  • git 상대참조(HEAD~, HEAD^) 대해서 공부하고 정리한 글입니다

  • git을 사용하다보면 이전의 커밋으로 돌아가야할 경우가 생긴다.

  • 이러한 경우에 상대참조를 유용하게 사용할 수 있다

  • HEAD 뒤에 ~와 함께 숫자를 사용하는 경우에는 현재 커밋의 이전 커밋을 참조할 수 있다

  • 예를 들어 아래와 같은 커밋이 있고, 현재 HEAD가 가르키는 커밋이 1번 이라고 할 때 ~와 함께 숫자를 사용해서 이전 커밋을 참조할 수 있다


aafd16c HEAD@{1}: commit: commit 1
b714abf HEAD@{2}: commit: commit 2
198ccde HEAD@{3}: commit: commit 3
ec591c6 HEAD@{4}: commit: commit 4


$ git checkout HEAD~1 
# commit2으로 이동

$ git checkout HEAD~2
# commit3으로 이동

  • reset과 같은 명령어와도 함께 사용할 수 있다

$ git reset --hard HEAD~2

# commit3의 상태로 초기화 

HEAD~

  • 여러개의 부모 커밋이 있는 경우에 ^를 사용할 수 있다

  • 예를 들어 merge 커밋처럼 여러개의 부모 커밋이 있는 경우에는 ^를 사용해서 첫번째 부모 또는 두번째 가르킬 수 있다


$ git checkout HEAD^2
# 두번째 부모커밋으로 이동 









© 2020. by dkmqflx

Powered by dkmqflx