스테이징 하기 전인 수정한 파일을 이전으로 되돌리는 명령어
$ git checkout -- hello.txt
$ git restore -- hello.txt
수정된 파일을 스테이징하고 스테이징을 취소하는 방법
git reset HEAD hello2.txt
git restore --staged hello2.txt
$ git reset HEAD^
-->커밋이 취소되고 스테이지에서도 내려졌다는 메시지가 뜸
git reset 명령의 옵션 살펴보기
1. --soft HEAD^ : 최근 커밋을 하기 전 상태로 작업트리를 되돌림
2. --mixed HEAD^ : 최근 커밋과 스테이징을 하기 전 상태로 작업 트리를 되돌림. 옵션 없이 git reset 명령을 사용할 경우 이 옵션을 기본으로 작동함
3. -hard HEAD^ : 최근 커밋과 스테이징, 파일 수정을 하기 전 상태로 작업 트리를 되돌림. 이 옵션으로 되돌린 내용은 복구할 수 없음
주의 reset A를 입력한다면 A 커밋을 삭제한다는 것이 아니라 A 커밋 이후에 만들었던 커밋을 삭제하고, A 커밋으로 이동하겠다는 의미
또한 이 옵션으로 되돌린 내용은 복구할 수 없다.
-->네모친 부분이 돌아갈 캐시
총 4번의 커밋을 하고 커밋 메시지가 R2인 커밋으로 이동하기 위해 R2커밋의 해시를 복사하고 아래의 명령어를 입력한다.
$ git reset --hard 복사한 캐시
커밋으로 되돌릴 때 나중에 사용할 것을 대비해서 취소한 커밋을 남겨두어야 할 때는 git reset이 아닌 git revert 명령을 사용
-->R5 커밋 생성
-->revert 명령어에 R5해시를 쓴 다음 추가로 남겨둘 내용이 있다면 R5 커밋메시지를 추가함
-->기존의 R5 버전을 지우지 않고 R5에서 변경했던 이력을 취소한 새 커밋을 만듦