프로젝트

다음 단계로

sun88 2026. 5. 6. 01:22

다음 링크를 통해 공부하여 작성했습니다.

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

 

Learn Git Branching

An interactive Git visualization tool to educate and challenge!

learngitbranching.js.org

 

 

 

1. HEAD 분리하기

  • HEAD는 현재 체크아웃된 커밋을 가리킴(현재 작업 중인 커밋)
  • 항상 작업 트리의 가장 최근 커밋을 가리킴
  • 일반적으로 HEAD는 브랜치의 이름을 가리키고 있고, 커밋을 하게 되면, bugFix의 상태가 바뀌고 HEAD를 통해 변경 확인 가능

처음 -> git checkout C1

 

문제 : HEAD를 bugFix에서 분리하고 그 커밋에 붙이기, 각 커밋은 그것의 해시값으로 특정 지을 수 있고, 각 커밋의 해시값은 각 커밋을 나타내는 원 안에 나타나 있음.

git checkout C4

 

 

 

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

  • 상대 커밋 두 가지 방법 
    • 한 번에 한 커밋 위로 움직이는 ^
    • 한 번에 여러 커밋 위로 올라가는 -<num>
    • main^ 는 main의 부모와 같은 의미, main^^는 main의 조부모를 의미

처음 -> git checkout C3; git checkout HEAD^; git checkout HEAD; git checkout HEAD^

 

문제 : bugFix의 부모 커밋을 체크아웃하면 HEAD가 분리될 것이고, 해시를 이용해서도 할 수 있지만, 상대 참조를 활용하여 연습해 보기

git checkout bugFix^

 

 

 

3. 상대 참조 #2 (~)

  • 커밋트리에서 위로 여러 단계 올라가고 싶을 때 사용

처음 -> git checkout HEAD~4

 

브랜치 강제로 옮기기

  • -f 옵션을 이용해서 브랜치를 특정 커밋에 직접적으로 재지정할 수 있음. (git branch -f main HEAD~3)

처음 -> git branch -f main HEAD~3

 

문제 : HEAD와 main과 bugFix를 제시되는 골지점으로 옮기기

git checkout C1

git branch -f bugFix C0

git branch -f main C6

 

 

 

4. Git에서 작업 되돌리기

  • 변경한 내용 되돌리는 두 가지 방법
    • git reset 
      • 브랜치로 하여금 예전의 커밋을 가리키도록 이동시키는 방식으로 변경 내용을 되돌림.
      • 히스토히를 고쳐 쓴다라고 말할 수 있음
      • 마치 애초에 커밋하지 않은 것처럼 예전 커밋으로 브랜치를 옮기는 것
    • git revert 
      • 각자 컴퓨터에서 작업하는 로컬 브랜치의 경우 리셋을 잘 쓸 수 있지만, 히스토리를 고쳐 쓴다는 점 때문에 다른 사람이 작업하는 리모트 브랜치에서는 쓸 수 없음.
      • 변경분을 되돌리고, 이 되돌린 내용을 다른 사람들과 공유하기 위해서 씀.

처음 -> git reset HEAD~1

 

처음 -> git revert HEAD

 

문제 : local 브랜치와 pushed 브랜치에 있는 최근 두 번의 커밋을 되돌려 보기, pushed는 리모트 브랜치이고, local은 로컬 브랜치

git branch -f local C1

git checkout pushed

git revert pushed

'프로젝트' 카테고리의 다른 글

Push & Pull -- Git 원격 저장소!  (0) 2026.05.06
고급 문제  (0) 2026.05.06
종합선물세트  (0) 2026.05.06
코드 이리저리 옮기기  (0) 2026.05.06
git 기본  (0) 2026.05.05