git 되돌리기 : git reflog

이찬영·2022년 1월 23일

지금 이글을 보고 있는 당신 git을 되돌리기를 검색해서 나왔을것이라고 생각한다.

나는 rebase를 하며 실수로 파일이 날아가는 것? 처럼 본적이 있었다.

그래서 여러가지 방법을 찾다가 git reflog를 보았다.

먼저 head의 개념도 알아보자!

  • 마지막 커밋의 참조
  • 가장 최신 커밋
  • 혹은 새로운 커밋의 부모

git reset

  • HEAD의 상태를 변경시키는 명령
  • 옵션에 따라 HEAD, 스테이지, 작업 디렉토리의 내용이 달라짐
  • 보통 강제로 특정 커밋으로 돌아고 싶을때 많이 사용함

그럼 다음과 같이 상황이 일어났다고 가정해보자~!

3477df5 (HEAD -> master) commit 2
b7896fc commit 1
7e5b465 (origin/master, origin/HEAD) Initial commit

실수로 3477df5를 git reset --hard HEAD로 지워서 현재 HEAD는
b7896fc로 되었다고 가정해보자.

이럴때!!!! 마법의 git reflog를 사용한다!

$ git reflog // 커밋로그가 모두 나온다.
$ git reset --hard 3477df5

그럼 다시 안심하고 돌아갈 수 있다. 그러면 킹깐만~!~!
한줄기 빛 같은 git reflog는?

git reflog

  • 참조(reference)의 기록(log)을 보여주는 명령
  • hard reset을 되돌릴 수 있다!
  • 하지만 commit기록을 남겨놔야 한다(미리미리 커밋 자주 하자!!!!)
profile
개발을 탐구하자

0개의 댓글