* reset 명령의 옵션 세가지
- soft: index 보존(add한 상태, staged 상태), 워킹 디렉터리의 파일 보존, 즉 모두 보존하고 HEAD 변경
- mixed: default 옵션, index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉터리의 파일 보존
- hard: index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 삭제, 즉 모두 취소하고 HEAD를 변경
* 작업의 취소
git reset --soft HEAD^
- soft 옵션을 사용하였으므로, 수정한 내역은 그대로 두고 head는 한 단계 위로 조정한다는 의미이다. commit을 취소한다는 것이다.
- hard 옵션을 사용하면 지금까지 작업한 것들이 다 날아가므로 조심해야 한다
* commit의 취소
git reset --hard @^
- hard를 이용하여 HEAD로 돌리는 명령어이다
- @는 1.8.4부터 도입된 HEAD의 동이어라고 한다. 같은 것으로는 @^, @~1, @~가 동일하다.
* pull, merge 취소
git reset --hard ORIG_HEAD
git reset --merge ORIG_HEAD
- ORIG_HEAD라고 하는 것은 이전에 작업한 곳의 HEAD이다.
- 즉, pull이나 merge를 하는 경우에 ORIG_HEAD를 남기게 되는데, pull을 잘못 받거나 merge를 잘못하게 되면 이것을 이용한다.
* add의 취소
git reset HEAD
- 즉, default인 mixed를 이용하여 HEAD로 돌아가게 하는 방법이다.
*** 작업할 때는 항상 branch를 사용하는 것이 좋다. 만약 push를 할 경우 commit을 지저분하지 않게 하려면 branch에 해야 force push를 할 수 있기 때문이다.
'Coding > git' 카테고리의 다른 글
git 편집 에디터 바꾸기 (nano to vim) (0) | 2020.10.01 |
---|---|
git branch 이용, 생성, 삭제 (0) | 2020.05.14 |
git revert - 커밋 변경, reset/revert 복구하기 (0) | 2020.05.14 |
git pull requests 사용법 (1) | 2019.12.23 |
git, github(버전 관리 프로그램, 원격 저장소) 사용하기 (0) | 2019.11.01 |