Git reset, revert, checkout 차이점

·2022년 2월 26일
0

Git

목록 보기
1/2
post-thumbnail

얄코의 제대로 파는 Git & GitHub 강의를 들으며 평소 git을 쓰면서 많이 헷갈린 부분을 정리한다.

✔reset

git reset --hard [커밋 해쉬]

HEAD의 포인터를 커밋 해쉬 위치로 변경한다
=> 커밋 해쉬 이후 커밋들을 삭제한다.

예를 들면 delta-branch에서 아래 명령어를 치면

git reset -hard [main 2nd commit hash] 

이렇게 HEAD는 2nd커밋으로 바뀌고 그 이후 커밋들도 히스토리에서 사라진다.

reset의 다른 옵션으로는 soft와 디폴트인 mixed가 있다.

-soft: repository에서 staging area로 이동
--mixed (default): repository에서 working directory로 이동
--hard: 수정사항 완전히 삭제

추가로 reset도 내역이 남기 때문에 git reflog 명령어로 해쉬를 찾아 다시 reset으로 취소할 수 있다.

✔revert

git revert [커밋 해쉬]

커밋 해쉬의 내용(상태)으로 되돌린다.
=>커밋의 내용을 되돌리는 커밋을 새로 만든다.

git revert [main 2nd commit hash] 

명령어를 쳐도 깃 히스토리는 삭제되지 않지만 파일 상태는 2nd commit때로 바뀐다.

✔checkout

git checkout HEAD ~ 
git checkout HEAD ^

^ 또는 ~ 갯수만큼 이전으로 이동
=> 히스토리 내역은 바꾸지 않고 파일 상태만 변화.

profile
중요한 건 꺾여도 다시 일어서는 마음

0개의 댓글