한줄씩 작업후 순서대로 커밋을 남겼다.
git reset 1st커밋ID
로컬에서 작업한 부분은 그대로 남아있다.
1st커밋 이후 로컬에 남은 작업 부분은 남아있지만 unstaged 상태이다.
돌아간 시점 이후 커밋 기록은 없다
git reset --soft 1st커밋ID
로컬에서 작업한 부분은 그대로 남아있다.
1st커밋 이후 로컬에 남은 작업 부분은 staged 상태이다.
--mixed와 동일
git reset --hard 1st커밋ID
1st커밋ID 이후 작업은 모두 사라진다.
1st커밋 이후 작업한 부분이 날아갔기 때문에 커밋할게 없다고 나온다.
--mixed와 동일
특정 commit으로 reset시 해당 커밋 이후 작업들
Git 영역 \ reset | --soft | --mixed | --hard |
---|---|---|---|
Working Directory | O | O | X |
Staging Area | O | X | X |
Repository | X | X | X |
이전 작업으로 돌아가는 것만을 목적으로 하면 reset으로 충분하다.
하지만 돌아간 특정 시점 이후의 커밋들도 남아있어야 하는 경우에는 reset이 아닌 rebase를 사용하자.