GitHub&Git

[Git] Reset --soft, --mixed, --hard

findTheValue 2022. 5. 11. 10:38

자꾸 할때마다 헷깔려서 이번에 깔끔하게 정리..

 

 

  • reset --soft A
    • A브랜치로 돌아가는데(repository 초기화) 기존에 add했던 코드들이 staged 된 상태로 그래도 넘어간다. 즉 reset으로 돌아가는 A버전과 내가 작업했던 작업물들을 합쳐 새로운 버전을 만들 필요가 있을 때 사용한다.
  • reset --mixed A
    • A브랜치로 돌아가는데 기존에 add했던 staging area가 추가로 reset된다. 즉 A로 돌아가면서 working directory만 유지되며 현재 작업물을 지우긴 싫고 이전버전에 이걸 add할지말지 결정해야 할 때,  단순 commit 실수를 했을 시 사용한다.
  • reset --hard A
    • A브랜치로 돌아가는데 repository, staging area, working directory의 모든 작업 코드를 지운다. 말 그대로 작업물을 날리고 싶을 때 사용한다.

 

바로 이전 commit 으로 돌아가고 싶으면 A 대신 HEAD^ 또는 HEAD~1사용

git이 관리하지 않는 파일 삭제는 git clean -n으로 확인하고 git clean -f로 삭제한다.