git reset, revert - commit 되돌리기

sturrxxl·2021년 1월 26일
3
post-thumbnail

commit을 되돌려야 하는 상황이 생길 수 있다.
commit메세지에 오타가 있을때, 이전 커밋에 추가하고 싶은 내용이 생겼을때 등
또는 remote에 오류난 채로 push했다거나 전에 올린 내용을 삭제하고 싶을때?!

reset과 revert 둘다 커밋을 이전 시점으로 돌려줄 수 있지만
완전히 같은 일을 한다고 보기 어렵다.

그래서 이번에는 두가지를 비교하며 명령어를 정리해보도록 하겠다🙂

git reset

Commit을 없애고 돌아가는 되돌리기

HEAD(특정 커밋)를 이동하여 파일 상태를 그 특정 HEAD시점으로 되돌린다
옵션으로 --soft , --mixed ←[ defalut ] , --hard를 사용해 인덱스와 수정파일 상태도 지정해서 되돌릴 수 있다.

+ ) 또는 add취소하기


➜ 관련 명령어 정리

HEAD를 옮겨 HEAD의 시점으로 돌아가기
git reset HEAD
ex ) git reset HEAD^ ← 바로 이전 시점으로 커밋 되돌리기

commit해쉬를 이용해 돌아가기
git reset {commitHASH}
ex ) git reset 0395e6 ← '0395e6' commit의 시점으로 되돌리기

reset option
--soft index와 workingtree 둘다 변하지 않고 HEAD만 이동
--mixed index가 변경되고 HEAD가 이동한다.
--hard index와 workingtree 둘다 변하고 HEAD도 이동

➚ 참고 index(add된 상태) workingtree(작업하는폴더) HEAD(가장 최근 commit에 위치함)

➜ reset의 또다른 기능 :: add 취소하기 (unstage)

add된 파일 모두 취소하기
git reset
add했던 파일(stage된 상태) 모두 다 add가 취소된(unstage상태)로 변경

특정 파일만 add 취소하기
git reset {파일이름 또는 경로}
경로 입력하면 해당 경로에 있는 파일의 add를 취소



git revert

Commit을 유지하며 되돌리기

remote에 push한 commit 되돌리기

commit을 안전하게 삭제, reset과 달리 뒤로 돌아가는것이 아니라
돌리고싶었던 뒤에있던 커밋을 앞으로 가져와 새로 생성한다.


➜ 관련 명령어 정리

commit해쉬를 이용해 이전 시점으로 돌아가기
git revert {commitHASH}




결론

reset은 local에서 commit을 되돌릴때 사용하고
revert는 remote에 올린 commit을 되돌릴때 사용하라고 하더라😤

profile
프론트 개발자가 되는 과정

0개의 댓글