- 다음과 같이 두 개의 커밋이 있는 상황에서,
a 파일 추가
커밋 시점으로 초기화하고 싶다.
1 |
|
- 이때
git reset
명령어를 사용하면 된다. git reset
명령어는 아래와 같은 옵션을 갖고 있다.
git reset --hard {커밋 ID}
- 특정 커밋 시점으로 돌아갈 때, 해당 커밋 이후 만들어진 모든 작업물을 삭제한다.
1 |
|
- 현재 작업한 파일을 모두 날리고 이전 커밋 상태로 완전히 돌아가고 싶을 때 사용하지만, 기존에 작성하던 변경사항들도 전부 날아가기 때문에 주의해야 한다.
git reset --mixed {커밋 ID}
- 특정 커밋 시점으로 돌아갈 때, 해당 커밋 이후 모든 작업물은
workspace
공간에unstaged
상태로 남게 된다.
1 |
|
--mixed
옵션은 기본git reset
의 기본 옵션으로git reset
만 실행해도 똑같다.
git reset --soft {커밋 ID}
- 특정 커밋 시점으로 돌아갈 때, 해당 커밋 이후 모든 작업물은
index
공간에staged
상태로 남게 된다.
1 |
|
git restore {파일 경로}
- 특정 파일의 변경사항을 제거하고
HEAD
기준으로 되돌리고 싶을 때,restore
를 사용할 수 있다. - 워크스페이스에 있는 변경 사항을 되돌릴 때:
git restore {파일경로}
1 |
|
git restore
는git reset --hard HEAD
와 비슷한 결과를 낸다.- 다만
restore
는 새 파일의 변경사항을 되돌리지 않지만,reset
은 새 파일의 변경사항도 되돌린다.