git 되돌리기 : git reflog

이찬영·2022년 1월 23일
1

지금 이글을 보고 있는 당신 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개의 댓글