본문 바로가기
Tools2026년 6월 23일3분 읽기

Git 되돌리기 총정리 — reset·revert·restore·checkout

YS
김영삼
조회 477
Git 되돌리기 총정리 — reset·revert·restore·checkout

핵심 요약

이미 push해 공유된 커밋을 되돌릴 땐 revert(되돌리는 새 커밋 추가, 안전), 아직 안 올린 로컬 커밋 정리는 reset, 작업 파일 변경 취소는 restore다. "공유됐나 / 무엇을 되돌리나"로 고르면 헷갈리지 않는다.

1. 상황별

하고 싶은 것명령
공유된 커밋 무효화git revert <hash>
로컬 커밋 취소(변경 유지)git reset --soft HEAD~1
로컬 커밋+변경 폐기git reset --hard HEAD~1
파일 수정 되돌리기git restore <file>
스테이징 해제git restore --staged <file>

2. 안전 장치

  • 실수로 reset --hard 했어도 git reflog로 대부분 복구 가능
  • 되돌리기 전 git stash로 현재 작업 백업

3. 함정

  • 공유 브랜치에 reset --hard + force push는 동료 작업 유실 — revert를 써라
  • reset --hard는 추적 안 된 변경을 날린다(주의)
  • checkout은 역할이 많아 헷갈림 — 신버전은 restore/switch로 분리됨

자주 묻는 질문

reset과 revert 차이가 뭔가요?

reset은 히스토리를 과거로 되감아(공유 시 위험), revert는 변경을 취소하는 새 커밋을 추가(히스토리 보존, 안전)합니다. 이미 push했으면 revert를 쓰세요.

reset --hard로 날린 작업을 복구할 수 있나요?

커밋된 적이 있으면 git reflog에서 해당 시점 해시를 찾아 복구할 수 있습니다. 다만 커밋 안 된 변경은 복구가 어렵습니다.

댓글 0

아직 댓글이 없습니다.
Ctrl+Enter로 등록