1. working directory에서 수정한 파일 가장 최근 commit 버전으로 되돌리기
$ git checkout -- [파일이름]
checkout(띄우고)--(띄우고)[파일이름] 임에 주의. 정상적으로 진행되면 git bash 화면에 아무것도 안 떠야 함.
2. staging 되돌리기
$ git reset HEAD [파일이름]
staging된(add 했고 이제 commit을 기다리고 있는) 파일을 내림. 실행 전후 git status 명령어를 입력했을 때 'Changes to be committed' -> 'Changes not staged for commit'으로 바뀌어야 함.
3. 최신 commit 되돌리기
$ git reset HEAD^
commit까지 완료된 파일을 이전 commit 버전으로 되돌려놓음. git log 명령어를 통해 제대로 수행되었는지 확인할 것.
3-1. git reset option
--soft HEAD^ | 최근 commit 전으로 복귀 |
--mixed HEAD^ | 최근 commit과 staging 전으로 복귀. (기본값) |
--hard HEAD^ | 최근 commit, staging, 파일 수정 전으로 복귀. 이 옵션으로 되돌린 내용은 복구 불가. |
4. 특정 commit으로 되돌리기
$ git reset [commit hash]
5. commit 삭제하지 않고 되돌리기
$ git revert [commit hash]