Git/Learn Git Branching

2-2. 상대 참조 (^) (Relative Refs)

가지코딩 2025. 4. 10. 11:31

🎮 게임으로 Git 익숙해지기

https://learngitbranching.js.org/?locale=ko

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org


설명

Git에서 여기저기 이동할 때 커밋의 해시를 사용하는 방법은 조금 귀찮습니다. 실제로 Git을 사용할 때는 터미널화면 옆에 예쁘장하게 커밋트리가 보이진 않으니까요. 매번 해시를 확인하려고 git log 명령어를 치고 있을 겁니다.

나아가서, 실제 Git에서는 해시들이 훨씬 더 깁니다. 예를 들어 이전 레벨에 소개했던 커밋의 해시는 fed2da64c0efc5293610bdd892f82a58e8cbc5d8입니다. 쓰기 쉬워 보이진 않네요....

다행히도, Git은 똑똑합니다. 해시가 커밋의 고유한 값임을 보여줄 수 있을 만큼만 명시해주면 됩니다. 위의 긴 문자열 대신 fed2만 입력해도 되는 겁니다.

 

말했듯이, 커밋들을 해시로 구분하고 사용하는것이 아주 편하다고 볼 수는 없습니다. Git의 상대 참조(Relative Ref)가 여기서 등장합니다. 굉장한 기능입니다.

상대 참조로 우리가 기억할 만한 지점(브랜치 bugFix라든가 HEAD라든가)에서 출발해서 이동하여 다른 지점에 도달해 작업을 할 수 있습니다.

상대 커밋은 강력한 기능인데, 여기서 두가지 간단한 방법을 소개하겠습니다.

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

 

캐럿 (^) 연산자

git checkout main^	// main 의 부모
git checkout main^^	// main 의 조부모


문제

level rampup2


풀이

git checkout HEAD^

 

'Git > Learn Git Branching' 카테고리의 다른 글

2-4. Git에서 작업 되돌리기  (1) 2025.04.10
2-3. 상대 참조 #2 (~)  (0) 2025.04.10
2-1. HEAD 분리하기  (0) 2025.04.10
1-4. 리베이스(rebase)의 기본  (0) 2025.04.10
1-3. Git에서 브랜치 합치기(Merge)  (0) 2025.04.10