[Git] git game - HEAD, branch -f, reset, revert

2024. 7. 8. 11:54Git

728x90
반응형
SMALL

HEAD

 

head 노드는 현재 checkout된 커밋을 가리킴

head 분리 : head를 브랜치 대신 커밋에 붙이는 것을 의미

 

 

커밋 구분 방법 : 해시값(처음 4자리로도 가능), 상대 참조(브랜치명, head)

 

상대 커밋 방법

^ : 한번에 한 커밋 위로 움직임
~<num> : 한번에 여러 커밋 위로 움직임

 

HEAD : main -> c1

git checkout main^

 

 

git branch -f [branch name] [object commit]

 

-f 옵션 : 특정 브랜치를 강제로 임의의 커밋으로 움직임 (브랜치 강제)

 

main : c4 -> c1

git branch -f main HEAD~3

 

 

git reset [object commit]

 

브랜치가 예전의 커밋을 가리키도록 이동시키는 방식으로 변경 내용을 되돌림

로컬에는 reset하기 전에 가리키던 커밋은 없었던 것과 마찬가지인 상태

 

 

git revert [object commit]

 

remote branch의 변경 내용을 되돌리고, 이를 다른 사람과 공유(push 가능)

-reset은 push 불가능

 

main : c2 -> c2'

git revert HEAD

c2' 커밋을 새로 생성하고, c2 이전의 내용을 저장(c1)

즉, 커밋을 없애는 것이 아닌 변경 내용을 되돌린다는 커밋을 추가하는 것

 


 

git game 정답

 

git checkout C4

 

 

git checkout HEAD^

 

 

git branch -f main c6
git branch -f bugFix c0
git checkout HEAD^

 

 

git reset HEAD^
git checkout pushed
git revert HEAD
728x90
반응형
LIST