티스토리 뷰
커밋을 체크아웃하려고 하면 커밋의 값을 알아야 하는데 커밋의 값은 너무 길고 외우기 힘들다. 그럴땐 해시가 커밋의 고유한 값임을 보여주는 만큼만 명시해주면 된다.
예를 들어, 해시값이 fed2da64c0efc5293610bdd892f82a58e8cbc5d8이고 fed2~에 해당하는 다른 커밋 해시값이 없다면 fed2만 입력해도 된다.
하지만 이렇다고 해도 어디까지 고유한지 아는것도 힘들기 때문에 커밋의 해시값을 사용하여 커밋하는 것은 힘들다.
그래서 git에는 상대 참조(Relative Ref)를 사용할 수 있다!
상대 참조는 우리가 기억할 수 있는 지점(브랜치라던가 HEAD라던가)에서부터 계산하는 방식이다.
상대 참조를 사용하는 방법은 2가지가 있다.
- 한번에 한 커밋 위로 움직이는 ^
- 한번에 여러 커밋 위로 올라가는 ~<num>
상대 참조 캐럿(^)
캐럿(^) 연산자는 참조 이름에 하나씩 추가할 때마다, 명시한 커밋의 부모를 찾는다.
예를 들어, main^은 main의 부모 커밋을 나타내고 main^^은 main의 조부모(부모의 부모) 커밋을 나타낸다.
1. main 브랜치의 부모 커밋을 체크아웃하기
$git checkout main^;
위의 명령어를 실행하면 main의 부모 커밋인 C1을 HEAD가 가리키게 된다
또한, HEAD 자체도 상대 참조의 기준으로 사용할 수 있다.
$git checkout HEAD^^;
위의 명령어는 현재 HEAD의 조부모(부모의 부모) 위치인 커밋을 체크아웃 하는 것이므로 C3의 조부모인 C0를 HEAD가 가리키게 된다.
목표
bugFix의 부모 커밋을 체크아웃하기
$git checkout C4
두번째 상대참조 방식인 ~<num>은 다음 포스트에서 알아보겠다.
상대 참조
ref
'Git' 카테고리의 다른 글
[다음 단계로] 4: Git에서 작업 되돌리기 (1) | 2023.11.03 |
---|---|
[다음 단계로] 3: 상대 참조 #2 (~) (0) | 2023.10.28 |
[다음 단계로] 1: HEAD 분리하기 (0) | 2023.10.28 |
[git 기본] 4: 리베이스(rebase)의 기본 (1) | 2023.10.20 |
[git 기본] 3: Git에서 브랜치 합치기(Merge) (1) | 2023.10.20 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크