Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 |
Tags
- web
- CI
- NextJS
- Security
- Debugging
- frontend
- Kubernetes
- reliability
- CSS
- 버전관리
- HTTP
- backend
- API
- SRE
- version-control
- Git
- 성능
- auth
- database
- react
- observability
- aws
- architecture
- PostgreSQL
- JavaScript
- Infra
- DevOps
- Performance
- Ops
- Operations
Archives
- Today
- Total
고민보단 실천을
git reflog 복구 가이드: 사라진 커밋과 브랜치를 되찾는 단계별 실전 방법 본문
git reflog 복구 가이드: 사라진 커밋과 브랜치를 되찾는 단계별 실전 방법
git reflog는 HEAD 이동 이력을 로컬에 보관해 reset, rebase, checkout 실수 이후 복구의 마지막 안전망 역할을 한다. 초보~중급 개발자가 바로 적용할 수 있도록 명령어 흐름, 옵션 선택 기준, 복구 절차를 실무 중심으로 설명한다.

git reflog 기본 사용 패턴
git reflog --date=iso
git checkout HEAD@{3}
git branch recovery/checkout-loss자주 쓰는 옵션 3~6개
| 항목 | 의미 | 언제 쓰는지(실무 상황) |
|---|---|---|
| show | reflog 항목 출력 | 복구 지점 해시를 찾을 때 |
| --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
'GIT' 카테고리의 다른 글
| git restore 파일 복구 실무: 작업 파일 취소와 스테이징 해제 안전하게 처리하기 (0) | 2026.02.23 |
|---|---|
| git reset으로 커밋 되돌리기: --soft·--mixed·--hard 차이와 복구 실무 가이드 (0) | 2026.02.22 |
| git rebase 실무 정리: interactive rebase와 충돌 복구, 안전한 강제 푸시 기준 (0) | 2026.02.22 |
| git merge 충돌 해결 운영 가이드: --no-ff 전략과 안전한 병합 절차 정리 (0) | 2026.02.22 |
| git fetch로 안전하게 동기화: 병합 없이 원격 변경 먼저 확인하는 방법 (0) | 2026.02.21 |
Comments
