git reset [옵션] {커밋 ID}
--soft--mixed--hard$ git add test1.txt
$ git commit -m "first"
$ git add test2.txt
$ git commit -m "second"
$ git add test3.txt
$ git commit -m "third"
git log --oneline를 확인해보면 각 커밋의 commit ID(hash code)를 확인할 수 있다.
git reset --softgit reset --soft {커밋 ID} 명령어를 통해 first 커밋으로 돌아가기$ git reset --soft c896df4

git reset --mixedgit reset --mixed {커밋 ID} 명령어를 통해 first 커밋으로 돌아가기$ git reset --mixed c896df4

git reset --hardtest4.txt 파일 생성

git reset --hard {커밋 ID} 명령어를 통해 first 커밋으로 돌아가기$ git reset --hard c896df4


git reflog 명령어를 사용하면 reset 하기 전의 과거 커밋 내용을 모두 조회 가능
hard 옵션으로 삭제된 파일도 복구 가능
$ git reset --hard 6110f88

| 옵션 | working directory | staging area | repository |
|---|---|---|---|
| --soft | V | HEAD가 특정 커밋을 가리킴 | |
| --mixed | V | HEAD가 특정 커밋을 가리킴 | |
| --hard | HEAD가 특정 커밋을 가리킴 |
git revert {커밋 ID}
git reset 5sd2f42라고 작성하면 5sd2f42라는 커밋으로 되돌린다는 뜻git revert 5sd2f42라고 작성하면 5sd2f42라는 커밋 한개를 취소한다는 뜻
git revert {커밋 ID} 명령어를 통해 세 번째 커밋 취소하기$ git revert 6110f88
i 입력 후 입력 모드로 변경하여 메시지 입력하고esc 입력 후 명령 모드로 변경하여 :wq+enter 눌러 메세지 저장 하고 vim 종료
test3.txt 파일은 삭제되고, 커밋이 취소되었다는 새로운 커밋이 생성된다.

$ git reset --hard {커밋 ID} 명령어를 통해 삭제된 파일을 복구할 수 있다.$ git reset --hard 6110f88
