https://gcapes.github.io/git-course-mace/07-undoing/
https://openclassrooms.com/en/courses/7476131-manage-your-code-project-with-git-and-github/7682726-use-git-reset

stage : add 해서 버전 추적 중인 파일들이 있는 공간

 

git reset

- 3 가지 옵션이 있다. ( --soft, --mixed(기본 옵션) , --hard) 

- (기본옵션) 인덱스는 삭제되지만 작업영역 디렉토리는 영향을 받지않는다.

  • 즉, 커밋한 로그는 사라지지만 파일은 보존
  • Head 도 커밋하기 이전으로 이동 
  • 선택적으로 커밋을 한 것을 골라서 제거 가능

 

git reset --hard

- 커밋한 로그, 파일까지 지우고 커밋하기 이전으로 이동한다.

- push 하지 않은 사항을 모두 제거

 

그러면 이 둘은 언제 사용하는 것이 적합할까?

git reset

  • 커밋취소하고 변경사항 반영
  • 병합 취소

git reset --hard

  • 잘못된 코드 작성
  • 실험적으로 변경 후 되 돌리기

git reset --hard 는 디렉토리까지 지우므로 적용하기전에 백업해두는 것도 고려해봐야 할듯

 

+ Recent posts