git reset을 하다 보면 reset 하기 이전으로 돌아가야 할 경우가 생깁니다.
그럴 경우 먼저, git reflog를 입력하여 이전 이력들을 조회합니다.
git reflog
git reflog 명령어에서 reflog는 reference log를 의미합니다.
이렇게 기존 이력들을 볼 수 있는 이유는, Git에서 커밋, 체크아웃, 머지 등의 이력을 모두 기록하고 있기 때문입니다.
$ git reflog
1c6743127 (HEAD -> dev) HEAD@{0}: reset: moving to head~1
f48441c33 (origin/dev) HEAD@{1}: commit: update older code3
1c6743127 (HEAD -> dev) HEAD@{2}: reset: moving to head~1
f48441c33 (origin/dev) HEAD@{3}: reset: moving to head~1
e535d54a8 HEAD@{4}: commit: update older code2
f48441c33 (origin/dev) HEAD@{5}: commit: update older code
위처럼 이전 이력이 나온다면, git reset --hard HEAD@{돌아갈 번호} 를 입력하여 되돌릴 수 있습니다.
$ git reset HEAD@{1}
위처럼 입력을 하면 f48441c33 커밋으로 돌아갈수있습니다. 물론 아래처럼 git reset --hard 커밋id 를 통해서도 해당 위치로 돌아갈 수 있습니다.
$ git reset f48441c33
또한, reflog를 활용하는 명령어이기 때문에 reset 한 내용을 취소하는 것뿐 아니라 커밋 등의 작업도 취소할 수 있습니다.
반응형
'DEV > GIT' 카테고리의 다른 글
[GIT] git cherry-pick (3) | 2022.07.07 |
---|---|
[GIT] 특정 commit 상세 수정 내용 보기(git diff, git show) (2) | 2022.04.15 |
[GIT] git reset과 git revert (8) | 2022.02.18 |
[GIT] git restore 를 이용한 staging area나 working directory 변화 취소 (0) | 2022.01.07 |
[GIT] git 설치하기 (2) | 2021.07.19 |
댓글