jwj3400
Git Reset 명령어 본문
1) 해당 명령어의 사용이유
- 단순히 이전 돌아가고 싶은 커밋으로 가고 싶을 때 사용하거나, 버그로 인하여 롤백해야하는 경우 이전 커밋으로 되돌아가기 위해 위 명령어를 사용
2) git reset과 git revert 차이
git reset:
- reset은 아예 현재가 없었던 것 처럼 원하는 과거로 돌아감. reset은 이력을 남기지 않음. 따라서 현재까지의 commit 이력을 남기지 않고 원하는 시점으로 완전히 되돌아가고 싶을 때 사용
- 혼자만 사용하는 브랜치인 경우 / origin에 있지만 아무도 이 브랜치를 사용하지 않는다는 확신을 가지는 경우에 사용
git revert:
- revert는 과거로 돌아가겠다는 이력을 남겨두고 원하는 시점으로 돌아감, 즉, 이전의 commit 내역을 남겨두고 새로운 commit을 생성하면서 과거로 돌아감
- 대다수의 경우 revert 사용 / 여러 개발자가 함께 협업하는 프로젝트에서는 revert로 작업할 것
3) 구체적 사용법
git reset
git reset --soft [commit ID]
git reset --mixed [commit ID]
git reset --hard [commit ID]
git reset HEAD~10
git reset HEAD^
- soft : commit된 파일들을 staging area로 돌려놓음. (commit 하기 전 상태로)
- mixed(default) : commit된 파일들을 working directory로 돌려놓음. (add 하기 전 상태로)
- hard : commit된 파일들 중 tracked 파일들을 working directory에서 삭제 (Untracked 파일은 여전히 Untracked로 남음)
- HEAD~취소할커밋수 : 현재로부터 원하는 만큼의 커밋이 취소된다.
- HEAD^ : 가장 최근의 커밋이 취소된다. (기본옵션 mixed)
git revert
git revert [commit ID]
- 돌아가고자 하는 ID로 돌아감