Git reset에 대해서 알아보자

Understanding about Git reset

Posted by dydtjr1128 on July 28, 2019 · 175 words/1 min read Git
Understanding git reset

Intro

Git을 이용한 개발을 하면서 자신이 원하는 커밋으로 되돌리고 싶은경우들이 발생한다. 그럴 때 git reset 명령어를 이용해서 원하는 커밋 상태까지 코드를 되돌릴 수 있다.

Git reset(Manage HEAD/Branch)

Git workflow

git reset --hard <commit>|<branch_name> # HEAD와 branch가 특정 커밋을 가리키도록 수정
git reset --hard HEAD^                  # HEAD와 branch를 현재 커밋에서 이전 커밋을 가리키도록 수정
git reset --hard HEAD~{number}          # HEAD와 branch를 현재 커밋에서  number 전 커밋을 가리키도록 수정

여기서 –hard 옵션을 사용하지 않으면 변경내역이 있는 파일들은 working directory에 modified 상태로 유지

  • Soft : 워킹 디렉토리와 index는 그대로 두고 브랜치만 전으로 되돌린다.(파일들은 그대로 남아있다는 뜻)
  • Mixed : 워킹 디렉토리는 그대로 두지만 인덱스를 포함해서 브랜치까지 전으로 되돌린다.(git commit과 git add명령까지 되돌린다는 뜻)
  • Hard : 실제 데이터까지 지워버릴 수 있어 위험하지만 워킹 디렉토리까지 이전으로 되돌릴 수 있다.(복구는 불가능하지만 되돌리고 다음 commit이 남아있다면 reflog로 복원 가능)

위의 옵션을 잘 적용해서 상황에 맞게 사용하면 된다.

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Reset-%EB%AA%85%ED%99%95%ED%9E%88-%EC%95%8C%EA%B3%A0-%EA%B0%80%EA%B8%B0