기본 패턴
text
git reflog
git reset --hard HEAD@{2}설명
git log가 커밋 히스토리를 보여 준다면,git reflog는 내 로컬에서 HEAD와 브랜치 포인터가 어떻게 움직였는지의 최근 기록을 보여 줍니다. 그래서 "사라진 것 같은 커밋"을 되찾을 때 특히 강합니다.reset --hard,rebase,checkout,commit amend같은 작업을 하다 보면 브랜치 끝이 예상과 달라질 수 있습니다. 이때 reflog를 보면 얼마 전까지 HEAD가 어디를 가리켰는지 추적할 수 있습니다.- 중요한 점은 reflog가 "로컬 작업 기록"이라는 것입니다. 원격 저장소의 공식 히스토리가 아니라, 내 저장소 안에서 포인터가 움직인 흔적을 보는 도구입니다.
- 그래서 reflog는 협업용 로그보다 응급 복구용 로그에 가깝습니다. 실수 직후 빠르게 확인하면 복구 가능성이 매우 높아집니다.
- Git을 오래 쓰다 보면 "이 커밋이 완전히 사라진 걸까?"라는 순간이 오는데, 그때 가장 먼저 떠올릴 명령이 reflog라고 생각하면 좋습니다.
빠른 정리
| 명령/개념 | 의미 |
|---|---|
git reflog | HEAD와 브랜치 포인터 이동 기록 보기 |
HEAD@{n} | 과거 시점의 HEAD 참조 |
| 잘 맞는 상황 | reset, rebase, amend 후 복구 |
| 핵심 성격 | 로컬 응급 복구 기록 |
주의할 점
reflog는 만능 백업이 아니라 로컬 이동 기록입니다. 시간이 지나 정리되면 오래된 항목은 사라질 수 있으니, 실수 직후 바로 확인하는 편이 가장 효과적입니다.
참고 링크
1 sources