본문 바로가기
TIL

11. 19. 29일차 TIL git reflog

by 눈 새 2024. 11. 20.

오늘은 어제 마저 하지 못한 기능들을 추가한 뒤, 깃허브에 실수로 올렸던 .env파일의 기록을 지우려고 했다. 그러다가 .env 추가 이후의 기록을 모두 날려버렸다.. 이를 해결 하기 위해 튜터님들을 찾아가 자문을 구했다. 그렇게 알게된 git reflog를 통해 삭제된 모든 기록을 다시 되돌릴 수 있었다.


1. git reflog

git reflog는 Git에서 브랜치의 HEAD가 어떻게 변화했는지를 기록하는 로그이다. 이 명령어를 사용하면, 과거의 커밋이나 체크아웃, 리셋 등의 작업으로 인해 HEAD가 어떤 상태였는지를 확인할 수 있다.

1) 주요 기능

  • HEAD의 이동 기록 : git reflog를 통해 HEAD가 카리키던 커밋의 이력을 볼 수 있다.
  • 복구 작업 : 실수로 커밋을 삭제하거나 브랜치를 변경했을 때, 과거의 커밋으로 돌아갈 수 있는 유용한 방법이다.
    • reflog에서 원하는 커밋의 해시를 찾아서 체크아웃하거나 브랜치를 생성할 수 있다.
  • 로컬 저장소에 한정된 기록 : reflog는 로컬 저장소에서만 유효하며 원격 저장소에는 영향을 미치지 않는다.

2) 사용예시

git reflog

 

이 명령어를 입력하면, HEAD의 이동 기록을 시간순으로 출력한다.

이를 통해 내가 원하는 로그의 해시값을 찾고 git reset --hard "해시"를 입력하여 강제로 복구시켰다.. 
다음부터 기우고 싶은 로그가 있다면 git revert를 사용하여 수정해야겠다..