git reset

SeokSuMIN·2020년 10월 28일
0

reset

현재 작업중인 커밋이 치명적인 오류여서 복구가 불가능할때, 또는 이전 작업 커밋으로 되돌리고 싶을때 해당 커밋으로 되돌아감(커밋취소)
reset명령어는 아래 옵션과 같이 사용 해야함

  • --soft: 스테이지 영역을 포함한 상태로 복원.
  • --mixed: 기본 옵션 값은 mixed입니다. reset 명령어를 사용할 때 옵션을 지정하지 않으면 기본값인 mixed로 선택.
  • --hard: 실제 파일이 삭제된 이전 상태로 복원.

1. --soft옵션

원하는 커밋위치로 되돌림, 되돌아간 커밋으로 돌아가면 해당 커밋에서 작업후 커밋을 하기 직전의 스테이지 영역의 파일이 그대로 복구됨.

git reset --soft  (HEAD 또는 커밋 해쉬 7자리)
git reset --soft  HEAD~  <--이전 커밋으로 soft 옵션을 사용한 리셋

menu5 커밋을 되돌려보자

git reset --soft  HEAD~  <--이전 커밋으로 soft 옵션을 사용

커밋이 되돌려짐


사진처럼 마지막 커밋의 스테이지에 파일을 올린 상태로 복구가 됨.
커밋을 되돌리면 되돌린 커밋이 최신 커밋임

2 . --mixed 옵션

mixed 옵션은 soft옵션과 다른게 스테이지 영역에 파일을 올리지 않은 상태로 복구됨
git reset 의 기본값은 --mixed임 즉 생략 가능

git reset (HAED위치 또는 커밋 해쉬값)또는
get reset --mixed (HAED위치 또는 커밋 해쉬값)


스테이지 영역엔 올라가지 않았지만 파일은 수정되어있는 상태임

3 . --hrad 옵션

hard옵션은 이전 커밋상태로 돌리면서 모든 작업내용을 삭제하고 되돌림.
즉 이전 커밋의 상태에서 작업영역에 아무런 수정된 내용이 없이 깨끗하게 되돌려짐

※ pull만 받는 깃 로컬이 있으면(운영중인 클라우드 등)서 pull에러나 도저히 회복 불가 충돌 및 코드 에러가 발생하면 이 옵션을 통해 커밋을 돌리고 리모트 pull을 다시 받으면 효율적

4 . 현재 작업중인 커밋 스테이지, 워킹 디렉토리 초기화

git reset --hard HEAD

현재 워킹 디렉토리, 스테이지 영역이 초기화됨,
커밋 되돌리기를 현재 커밋으로 하면됨.

5 . 병합 되돌리기

git reser --merge HEAD~

이전 커밋으로 되돌려 병합을 되돌림.

profile
자극이 필요한 개발자

0개의 댓글