Post

Git reset 취소하기

Git reset 취소하기

git reset 취소하기

git reset을 잘못해서 원래 돌아가려던 커밋보다 더 이전 커밋으로 이동한 경우

git reflog를 이용하면 reset 하기 전의 위치로 다시 되돌릴 수 있다.


먼저 아래 명령어로 HEAD가 이동했던 기록을 확인한다.

1
git reflog


예시는 아래와 같다.

1
2
3
4
a123456 HEAD@{0}: reset: moving to HEAD~2
b123456 HEAD@{1}: commit: 로그인 기능 수정
c123456 HEAD@{2}: commit: 회원가입 기능 추가
d123456 HEAD@{3}: commit: 초기 화면 구성


여기서 HEAD@{0}은 방금 실행한 reset 기록이다.

따라서 reset 하기 전 상태로 돌아가려면 보통 바로 이전 위치인 HEAD@{1}로 되돌리면 된다.

1
git reset --hard HEAD@{1}


또는 커밋 해시를 직접 지정해서 되돌릴 수도 있다.

1
git reset --hard b123456


정리하면, 잘못 reset 했을 때는 다음 순서로 해결하면 된다.

1
2
git reflog
git reset --hard HEAD@{되돌아갈번호}


주의할 점은 --hard 옵션을 사용하면 현재 작업 중이던 변경사항이 사라질 수 있다는 것이다.

따라서 작업 중인 파일이 있다면 먼저 저장하거나 백업한 뒤 실행하는 것이 좋다.

This post is licensed under CC BY 4.0 by the author.