되돌리기 위한 Reset 명령어

Hyun·2021년 10월 15일
0

깃 & 깃허브

목록 보기
3/7

Reset

reset 명령어를 통해 작업 이력을 이전으로 되돌릴 수 있다.

  • git reset --hard HEAD(^ * N)
    repository, staging area, working directory 모두 N 번 전의 이력으로 돌아간다.
  • git reset --mixed HEAD(^ * N)
    repostory 와 staging area 가 N 번 전의 이력으로 돌아간다. working directory 는 그대로이다.
  • git reset --soft HEAD(^ * N)
    repository 가 N 번 전의 이력으로 돌아간다. working directory 와 staging area 는 그대로이다.

HEAD
HEAD 는 현재 브랜치를 가리키는 포인터이며, 브랜치는 브랜치에 담긴 커밋 중 가장 마지막 커밋을 가리킨다. 지금의 HEAD 가 가리키는 커밋은 바로 다음 커밋의 부모가 된다. 즉 HEAD 는 "현재 브랜치 마지막 커밋의 스냅샷" 이다.

실습

GIT-CLASS 폴더를 만들고, test.txt 파일을 생성한다. 버전관리를 위해 git init 명령어를 입력한다.

  1. test.txt 파일에 "This is First Commit" 을 입력하고 add, commit 을 해준다.
    이후 test.txt 파일 내용을 "This is Repository" 로 수정하고 똑같이 add, commit 을 해준다.

  2. test.txt 파일 내용을 "This is Staging Area" 로 수정한 후, git add 해준다.

    위와 같이 working directory 와 staging area 에 "This is Staging Area" 내용의 test.txt 파일이 존재하는 것을 볼 수 있다.

  3. test.txt 파일 내용을 "This is Working Directory" 로 수정한다.


    위와 같은 상태가 될 것이다. 위 상태를 기준으로 reset 명령어들을 실습해보자

git reset --hard HEAD^

한 단계 이전으로 repository, staging area, working directory 모두가 돌아간 것을 볼 수 있다.

git reset --mixed HEAD^

한 단계 이전으로 staging area, working directory 가 돌아간 것을 볼 수 있다.

git reset --soft HEAD^

한 단계 이전으로 repository 가 돌아간 것을 볼 수 있다.

profile
better than yesterday

0개의 댓글