홈/엔지니어/Git / CI·CD/Git 실수 복구 — reset, revert, s…
Git / CI·CD중급ubuntumacoswindowsgitresetrevert

Git 실수 복구 — reset, revert, stash

잘못된 커밋, 잘못된 브랜치 작업, 실수로 삭제한 파일까지 — 상황별 Git 되돌리기 방법을 정리했습니다.

목차
  1. 상황별 복구 방법
  2. 스테이징/작업 디렉터리 되돌리기
  3. 커밋 수정 (push 전에만)
  4. reset
  5. revert (공유 브랜치)
  6. stash
  7. reflog (삭제된 커밋 복구)

상황별 복구 방법

상황명령어
스테이징 취소git restore --staged <file>
작업 디렉터리 되돌리기git restore <file>
마지막 커밋 수정git commit --amend
커밋 되돌리기 (히스토리 유지)git revert HEAD
커밋 취소 (히스토리 삭제)git reset HEAD~1
작업 임시 저장git stash
삭제된 커밋 복구git reflog

스테이징/작업 디렉터리 되돌리기

Bash
git restore --staged index.html
git restore index.html
git restore --staged .
git restore .

커밋 수정 (push 전에만)

Bash
git commit --amend -m "fix: 올바른 메시지"

git add forgotten.txt
git commit --amend --no-edit

reset

Bash
git reset --soft HEAD~1     # 커밋만 취소, 변경사항은 스테이징으로
git reset HEAD~1            # 커밋 취소 + 스테이징 해제, 파일은 유지
git reset --hard HEAD~1     # 커밋 + 변경사항 모두 삭제 (위험)
git reset --hard abc1234

revert (공유 브랜치)

Bash
git revert abc1234

git revert --no-commit HEAD~3..HEAD
git commit -m "revert: 마지막 3개 커밋 되돌리기"

stash

Bash
git stash
git stash push -m "로그인 기능 WIP"
git stash list
git stash pop
git stash apply stash@{1}
git stash drop stash@{0}
git stash branch feat/new stash@{0}

reflog (삭제된 커밋 복구)

Bash
git reflog
git reset --hard HEAD@{3}

git reflog | grep "feat/login"
git checkout -b feat/login abc1234
#git#reset#revert#stash#reflog#복구
편집 안내 · Editorial Note

AI 도구가 초안 작성에 사용될 수 있습니다. 명령어의 실행 여부와 검증 환경은 각 가이드에 기재된 근거를 확인하세요. 적용 전 사용 중인 버전의 공식 문서를 확인하고, 오류는 이메일로 알려주세요. 이메일로 제보

주제 관련 공식 문서(자동 연결 · 문장별 근거 아님)Git 공식 문서 ↗

질문 & 답변 (Q&A)

이 가이드에 대해 궁금한 점을 질문해보세요. 확인 후 답변드립니다.