Git,  Programming

[Git] Reset 수행 후 복구 방법

Git을 사용하다 보면 중간에 의도하던 의도하지 않던 reset을 하는 경우가 발생한다. 이 때 복구를 원할 때는 다음과 같이 수행한다.

# git reset --hard [Target Commit]
$ git reset --hard HEAD~1 # 현재 commit 첫 번째 이전으로 돌가기
$ git reflog
3ef42b2 HEAD@{0}: 3ef42b2: updating HEAD
0306015 HEAD@{1}: checkout: moving from master to master
0306015 HEAD@{2}: checkout: moving from master to master
0306015 HEAD@{3}: 0306015bccf36f6ef5588255f4d7f8f0190041a6: updating HEAD
3ef42b2 HEAD@{4}: commit: Update defines in tb
4065828 HEAD@{5}: commit: Initial
199d98b HEAD@{6}: commit: Supports different maximum size between SRAM and VROM

git reflog는 이전까지했던 작업들의 log를 확인 해 몇 번째 commit으로 이동할지 확인한다. 여기엔 현재 HEAD 기준으로 몇 번째 commit인지를 나타내는 값이 있는데, 이 값을 이용해서 이동 가능하다. 참고로 comment를 보고 어떤 위치로 돌아갈지를 알고 있어야 한다.
만약 HEAD@{3}으로 이동 할 것이면 아래와 같이 수행하면 된다.

$ git reset --hard HEAD@{3}

Leave a Reply

Your email address will not be published. Required fields are marked *