반응형
이번 포스팅에서는 [실전 활용 및 고급 기술] 파트의 세부 주제인 사라진 커밋 구출 작전 (Reflog)에 대하여 상세히 알아보겠습니다.

1. 최후의 보루, Reflog
터미널 조작 중 실수로 git reset --hard 명령어를 실행하여 수 일간 작업한 커밋이 허공으로 증발해버린 경험은 누구나 한 번쯤 겪게 됩니다. git log를 쳐도 기록이 나오지 않아 절망스럽지만, Git은 내부적으로 사용자의 브랜치 이동 경로와 모든 행위(커밋, 리셋, 병합 등)를 기록하는 일지인 Reference Log(Reflog)를 유지하고 있습니다.
2. 복구 절차
Reflog를 열람하면 이미 삭제되어 일반 히스토리에는 보이지 않는 커밋 해시들까지 전부 조회할 수 있습니다.
# 1. 모든 조작 기록과 당시의 커밋 해시 출력
$ git reflog
# 출력 예시:
# 3b4e1a2 HEAD@{0}: reset: moving to HEAD~1
# a1b2c3d HEAD@{1}: commit: 로그인 로직 수정 완료 <- (찾던 커밋!)
# 2. 구출하고자 하는 과거 커밋 시점으로 다시 강제 이동
$ git reset --hard a1b2c3d
데이터 유효 기간:
reflog기록은 로컬 컴퓨터에만 남는 데이터이며 원격에 공유되지 않습니다. 또한, Git의 가비지 컬렉터(GC)에 의해 약 90일이 경과하면 이 찌꺼기 데이터들마저 완전히 영구 삭제되므로 사고가 인지된 즉시 복구를 시도해야 합니다.
지금까지 사라진 커밋 구출 작전 (Reflog)의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.
반응형
'CI.CD > GIT' 카테고리의 다른 글
| [GIT] 장애 원인 추적: Blame & Bisect (0) | 2026.07.14 |
|---|---|
| [GIT] 소프트웨어 릴리스 버전 마킹 (Tag) (0) | 2026.07.14 |
| [GIT] 최근 커밋 덮어쓰기 및 편집 (Amend) (0) | 2026.07.14 |
| [GIT] 특정 커밋만 선별하여 가져오기 (Cherry-pick) (0) | 2026.07.14 |
| [GIT] 과거 시점으로 되돌리기 (Reset & Revert) (0) | 2026.07.14 |