checkout
,restore
,reflog
를 활용한 되돌리기 전략
Git으로 작업하다 보면 잘못된 변경을 되돌려야 하는 경우가 많습니다.
이때 checkout
, restore
, reflog
세 가지 명령어를 알면 대부분의 상황을 해결할 수 있습니다.
git checkout
— 특정 커밋 또는 브랜치로 이동git checkout <commit_hash>
또는
git checkout <branch_name>
restore
로 역할이 분리됨📌 파일만 되돌리기
git checkout <commit_hash> -- path/to/file
→ 지정 파일만 해당 커밋 상태로 복원
git restore
— 변경 사항을 취소git restore <파일명>
git restore --staged <파일명>
git reflog
— 잃어버린 커밋까지 추적git reflog
예시 출력:
a8f3c21 HEAD@{0}: reset: moving to HEAD~1
2c8e198 HEAD@{1}: commit: feat: 기능 추가
f8ef6d6 HEAD@{2}: commit: fix: 버그 수정
reset --hard
나 브랜치 삭제 후에도 복구 가능git checkout HEAD@{1}
명령어 | 사용 목적 | 안전성 |
---|---|---|
checkout | 브랜치/커밋 전환, 특정 파일 복원 | ✅ 안전 |
restore | 워킹 디렉토리/스테이징 취소 | ✅ 안전 |
reflog | 잃어버린 커밋까지 추적 후 복구 | ✅ 매우 유용 |
✔️ checkout
→ 브랜치/커밋 전환 및 파일 복원
✔️ restore
→ 변경 사항 취소 (안전하게 되돌리기)
✔️ reflog
→ 삭제된 이력까지 복구 가능
👉 이 세 가지 명령어를 알면, 거의 모든 Git 되돌리기 상황을 해결할 수 있습니다.