티스토리 뷰

Git

[다음 단계로] 2: 상대 참조 (^) (Relative Refs)

개발하고싶은개발자 2023. 10. 28. 16:02

커밋을 체크아웃하려고 하면 커밋의 값을 알아야 하는데 커밋의 값은 너무 길고 외우기 힘들다. 그럴땐 해시가 커밋의 고유한 값임을 보여주는 만큼만 명시해주면 된다.

 

예를 들어, 해시값이 fed2da64c0efc5293610bdd892f82a58e8cbc5d8이고 fed2~에 해당하는 다른 커밋 해시값이 없다면 fed2만 입력해도 된다.

하지만 이렇다고 해도 어디까지 고유한지 아는것도 힘들기 때문에 커밋의 해시값을 사용하여 커밋하는 것은 힘들다.

 

그래서 git에는 상대 참조(Relative Ref)를 사용할 수 있다!

상대 참조는 우리가 기억할 수 있는 지점(브랜치라던가 HEAD라던가)에서부터 계산하는 방식이다.

 

상대 참조를 사용하는 방법은 2가지가 있다.

  1. 한번에 한 커밋 위로 움직이는 ^
  2. 한번에 여러 커밋 위로 올라가는 ~<num>

 

 

상대 참조 캐럿(^)

캐럿(^) 연산자는 참조 이름하나씩 추가할 때마다, 명시한 커밋의 부모를 찾는다.

예를 들어, main^main의 부모 커밋을 나타내고 main^^main조부모(부모의 부모) 커밋을 나타낸다.

 

1. main 브랜치의 부모 커밋을 체크아웃하기

$git checkout main^;

위의 명령어를 실행하면 main부모 커밋인 C1HEAD가 가리키게 된다

또한, HEAD 자체도 상대 참조의 기준으로 사용할 수 있다.

$git checkout HEAD^^;

위의 명령어는 현재 HEAD조부모(부모의 부모) 위치인 커밋을 체크아웃 하는 것이므로 C3의 조부모인 C0HEAD가 가리키게 된다.

 

 

목표

bugFix의 부모 커밋을 체크아웃하기

$git checkout C4

 

 

두번째 상대참조 방식인 ~<num>은 다음 포스트에서 알아보겠다.

 

상대 참조

  1. 캐럿(^) https://while-programming.tistory.com/131
  2. 틸트(~) https://while-programming.tistory.com/132

ref

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30