실무에서 자주 쓰는 Git 되돌리기 3가지

0

Git

목록 보기
8/13
post-thumbnail

🐙 실무에서 자주 쓰는 Git 되돌리기 3가지

checkout, restore, reflog를 활용한 되돌리기 전략

Git으로 작업하다 보면 잘못된 변경을 되돌려야 하는 경우가 많습니다.
이때 checkout, restore, reflog 세 가지 명령어를 알면 대부분의 상황을 해결할 수 있습니다.


✅ 1. git checkout — 특정 커밋 또는 브랜치로 이동

🔹 사용 예시

git checkout <commit_hash>

또는

git checkout <branch_name>

🔹 특징

  • 특정 브랜치나 커밋으로 **HEAD(현재 작업 포인터)**를 이동
  • 예전에는 파일 복구에도 사용되었지만, Git 2.23 이후 restore로 역할이 분리됨
  • 과거 버전 확인 또는 브랜치 전환에 유용

📌 파일만 되돌리기

git checkout <commit_hash> -- path/to/file

→ 지정 파일만 해당 커밋 상태로 복원


✅ 2. git restore — 변경 사항을 취소

🔹 사용 예시

(워킹 디렉토리 변경 취소)

git restore <파일명>

(스테이징된 파일도 취소)

git restore --staged <파일명>

🔹 특징

  • Git 2.23 이후 파일 복원 전용으로 추가
  • 워킹 디렉토리 또는 스테이징 영역을 마지막 커밋 상태로 되돌림
  • 협업 시 안전하게 사용 가능

✅ 3. git reflog — 잃어버린 커밋까지 추적

🔹 사용 예시

git reflog

예시 출력:

a8f3c21 HEAD@{0}: reset: moving to HEAD~1
2c8e198 HEAD@{1}: commit: feat: 기능 추가
f8ef6d6 HEAD@{2}: commit: fix: 버그 수정

🔹 특징

  • HEAD가 이동한 모든 이력을 추적 (삭제된 커밋도 기록)
  • reset --hard나 브랜치 삭제 후에도 복구 가능
  • 원하는 시점으로 돌아가려면:
git checkout HEAD@{1}

✅ 4. 언제 무엇을 써야 할까?

명령어사용 목적안전성
checkout브랜치/커밋 전환, 특정 파일 복원✅ 안전
restore워킹 디렉토리/스테이징 취소✅ 안전
reflog잃어버린 커밋까지 추적 후 복구✅ 매우 유용

🟢 마무리

✔️ checkout → 브랜치/커밋 전환 및 파일 복원
✔️ restore → 변경 사항 취소 (안전하게 되돌리기)
✔️ reflog → 삭제된 이력까지 복구 가능

👉 이 세 가지 명령어를 알면, 거의 모든 Git 되돌리기 상황을 해결할 수 있습니다.

0개의 댓글