본문 바로가기
Git using(깃 사용하기)

깃(git) 복귀 - reset , revert

by 코딩하는 동현😎 2022. 4. 21.

리셋 (reset)

리셋 (reset)은 커밋을 기준으로 이전 코드로 되돌리는 방법으로, 기록한 커밋을 취소합니다.

커밋을 취소하는 만큼 신중하게 작업해야합니다.

git log --oneline : 커밋내역을 간단하게 확인

git reset --옵션 커밋ID

리셋에는 세가지 옵션이 있는데요, soft , mixed , hard가 있습니다.

hard로 갈수록 위험합니다.

  • soft : HEAD 포인터만 움직이고, 워킹과 스테이지 영역은 그대로 입니다.
  • mixed : 기본옵션. 워킹은 그대로, unstaged된 상태로 이전 커밋으로 옵니다.
  • hard : 실제 파일이 삭제된 이전 상태로 복원합니다.

리버트 (revert)

리셋은 기존 커밋 정보를 삭제하지만, 리버트를 기존 커밋을 남겨두고 취소에 대한 새로운 커밋을 생성합니다.

git revert 커밋ID : 리버트로 취소 커밋을 생성합니다

 

git revert 커밋ID .. 커밋ID : 깃의 범위 지정 연산자 (..)를 이용해 여러 커밋을 리버트 할 수 도 있습니다.

 


커밋ID를 HEAD포인터로 대체

 

현재 커밋은 HEAD , 이전 커밋은 HEAD~ , 2단계 전 커밋은 HEAD~2등을 이용해서 커밋ID를 대체 할 수 있습니다.

예시)

  • git reset --soft HEAD~ : 이전 커밋을 soft를 통해 이동
  • git checkout HEAD~n : n단계전 커밋으로 HEAD포인터를 이동(브랜치도 이 방식으로 바꿀수 있다)
반응형

댓글