working directory | staging area |
repository directory |
기타 | |
파일에 대한 작업 | ||||
checkout -- 파일 | 취소 | 유지 | 유지 | |
checkout HEAD 파일 | 취소 | 취소 | 유지 | |
reset -- 파일 | 유지 | 취소 | 유지 | |
전체에 대한 작업 | ||||
reset commit id | 유지 | 취소 |
commit id 이후의 커밋 취소 |
commit id에 해당하는 커밋은 유지된다. |
reset HEAD^ | 유지 | 취소 | 최신 커밋 취소 | 커밋은 했지만 push하지 않은 경우 유용 |
reset HEAD~2 | 유지 | 취소 | 최근 커밋 2개 취소 | |
reset --hard HEAD~2 | 취소 | 취소 | 최근 커밋 2개 취소 | -- hard는 working과 staging 모두 취소 |
reset --soft HEAD~2 | 유지 | 유지 | 최근 커밋 2개 취소 | --soft는 working과 staging 모두 유지 |
reset --hard ORIG_HEAD | 병합한 커밋을 취소 |
ORIG_HEAD는 위험한 작업에 대한 포인터로 push나 merge가 여기에 해당됨 |
||
revert HEAD | 거부 | 거부 | 최신 커밋 취소 | 커밋을 이미 push한 경우 |
reset --hard HEAD | 취소 | 취소 | 유지 | 신규파일에 영향없음 |
checkout HEAD | 취소 | 취소 | 유지 | 신규파일에 영향없음 |
checkout -f | 취소 | 취소 | 유지 | 신규파일에 영향없음 |
clean -f -d |
untracked 파일제거 (디렉토리포함) |
유지 | 유지 |
reset의 옵션
- --soft : staging area(index) 보존, working directory 보존. 즉 모두 보존.
- --mixed : staging area 취소, working directory 보존 (기본 옵션)
- --hard : staging area 취소, working directory 취소. 즉 모두 취소.