git reset

Jung Hyun Kim·2021년 2월 8일
0

git

목록 보기
5/6
post-thumbnail

git reset👆

  • HEAD를 어디에 위치 시키냐의 관점으로 볼 수 있다

git reset 🤓

  • 커밋을 되돌리거나 작업중인 부분을 이전 단계로 돌아가기 위해 사용하는데, 추가적인 명령어를 통해 어느 버전으로 reset 시킬 건지를 결정할 수 있다.

git reset --soft

  • 가장 최근의 커밋을 현재 브랜치에서 지워준다. 하지만 작업한 내용은 여전히 working tree에 남아있다. 즉 git add 는 되어 있고, 커밋이 되어있지 않은 상황이라고 보면 된다!

  • 예를 들어 위와 같이 커밋을 한후에 git reset --soft HEAD~1 (HEAD를 한단게 전으로 이동) 명령어를 입력하면 changes to be committed로 되어서 수정된 부분이 add만 된상태인 상태로 보여진다. HEAD는 이전 커밋을 바라보고 index는 여전히 working directory의 변화를 포함하고 staged된 상태라고 볼 수 있다.


git reset --mixed

  • 기본적으로 git reset만 사용하였을때의 기본 default 옵션이며, 보통 특정 커밋 해시값을 뒤에 추가하여 그 commit으로 reset할 때 주로 사용한다.
  • HEAD/INDEX 둘 다 이전 상태를 바라보고 working directory 의 내용은 unstaged된다.

git reset --hard

  • --hard라는 이름처럼 아예 HEAD와 index를 옮기고 working directory 내용까지 reset즉 아예 없애버리게 된다.



git reset 보통의 사용예시 💜

  • 실제로는 한단계를 돌리기 보다는 돌아가고자 하는 commit의 해시값을 입력해서 돌아가는 경우가 더 많다.
  • git log 를 통해 돌아가고자 하는 commit 을 확인하고 (commit 뒤의 노란 해시값)
  • git reset 87eed64c19dc96650da3a773d7c9f85fafb4a4e3 을 입력하면 해당 commit으로 head가 향하게 되고 그 이후의 작업물은 unstaged된 상태로 저장되어 있다. 이때 checkout 을 해주면 unstaged된 작업도 checkout 된다!
profile
코린이 프론트엔드 개발자💻💛🤙🏼

0개의 댓글