고민보단 실천을

git reflog 복구 가이드: 사라진 커밋과 브랜치를 되찾는 단계별 실전 방법 본문

GIT

git reflog 복구 가이드: 사라진 커밋과 브랜치를 되찾는 단계별 실전 방법

Just-Do-It 2026. 2. 22. 19:59

git reflog 복구 가이드: 사라진 커밋과 브랜치를 되찾는 단계별 실전 방법

git reflog는 HEAD 이동 이력을 로컬에 보관해 reset, rebase, checkout 실수 이후 복구의 마지막 안전망 역할을 한다. 초보~중급 개발자가 바로 적용할 수 있도록 명령어 흐름, 옵션 선택 기준, 복구 절차를 실무 중심으로 설명한다.

git reflog reference image
공식 Git 로고 (출처: git-scm.com)

git reflog 기본 사용 패턴

git reflog --date=iso
git checkout HEAD@{3}
git branch recovery/checkout-loss

자주 쓰는 옵션 3~6개

항목의미언제 쓰는지(실무 상황)
showreflog 항목 출력복구 지점 해시를 찾을 때
--date=iso시간 형식 명확화정확한 작업 시점 기준으로 찾을 때
expire오래된 reflog 정리저장소 정리 정책을 운영할 때
HEAD@{n}n번째 이전 HEAD 참조특정 시점으로 빠르게 이동할 때

실무 적용 순서

1) 실행 전 상태 확인

git status와 git log로 현재 위치를 확인한다. 특히 원격 공유 브랜치인지, 로컬 전용 브랜치인지 먼저 판단해야 안전하다.

2) 목적에 맞는 옵션 선택

동일 명령어라도 옵션에 따라 이력 보존, 충돌 위험, 협업 영향이 달라진다. 팀 정책과 배포 단계에 맞춰 옵션을 고른다.

3) 실행 후 검증

명령 실행 뒤에는 status, diff, 테스트를 통해 결과를 검증한다. 필요하면 즉시 복구 명령(reflog, revert, stash)을 연계한다.

문제 상황 1개

상황: rebase 후 필요한 커밋이 로그에서 보이지 않는다.
원인: 브랜치 포인터가 이동하며 일반 log에서 참조가 사라졌다.
해결: reflog에서 이전 HEAD를 찾아 복구 브랜치를 생성한다.
예방 팁: 대규모 이력 재작성 전 복구용 태그를 임시로 만든다.

참고/출처

공식 문서: git-reflog manual
공식 문서: Pro Git - Data Recovery
신뢰 자료: Graphite Guide - Recovering lost commits

Comments