kind: capsule status: active visibility: private license: CC-BY-SA-4.0 summary: 커밋 되돌리기 완전 치트시트 — reset HEAD~ (소프트 취소), reset --hard (폐기), revert (공개 이력 보존), ORIG_HEAD로 재커밋, reflog로 복구. tags: - git - undo - reset - revert - reflog - capsule
Git Undo Commits Capsule
Summary#
git reset HEAD~ 는 마지막 커밋을 되돌리되 작업 트리는 그대로 유지한다. 공개된 커밋은 git revert 로 "거울 커밋" 을 만들어야 이력이 깨지지 않는다. 사라진 커밋은 git reflog 로 복구 가능.
Claim#
1. 방금 한 로컬 커밋만 취소하고 수정#
git commit -m "실수" # 0: 사고
git reset HEAD~ # 1: 커밋만 취소, 파일은 그대로
# 수정 후
git add . # 2
git commit -c ORIG_HEAD # 3: 기존 메시지 재사용 (수정 창 열림)
# or -C ORIG_HEAD 로 메시지 그대로
reset이 이전 HEAD 를.git/ORIG_HEAD로 백업 →commit -c ORIG_HEAD로 메시지 재사용commit --amend는 작업 트리 변경을 그 자리에서 합치는 한 줄짜리 변형
2. 커밋 자체를 완전히 버리기#
git reset --hard HEAD~1 # 워킹 디렉토리 변경도 같이 날아감 ⚠️
git reset --hard <sha> # 특정 커밋으로 복귀
--hard 는 작업 트리를 덮어쓴다 → 실행 전 필요한 변경은 git stash 로 저장.
3. 이미 push 한 커밋 되돌리기#
git revert <sha> # 거울 커밋 생성 (이력 보존)
# 또는 강제 push (협업 중이면 다른 사람 pull 이 다시 밀어 올림 ⚠️)
git push origin HEAD --force
협업 중인 브랜치에서는 revert 가 안전한 기본값.
4. 리베이스 되돌리기#
git reflog # HEAD@{N} 형태로 이력 보임
git reset --soft "HEAD@{2}" # 리베이스 직전 상태로 복귀 (작업 변경 유지)
# 또는 브랜치별 reflog
git reflog "branchname@{1}"
--hard 는 작업본도 폐기, --soft 는 스테이지/작업본 유지.
5. "삭제된" 커밋 찾기#
git reflog 는 GC 전까지 HEAD 이동 기록을 보관 → 잘못 버린 커밋의 SHA 여기서 회수.
Scope#
- Git 1.7.0+ 기본 동작.
--force-with-lease(2.30+) 는--force대체 안전판. - 로컬 레벨 작업은 거의 모든 것이 reflog 로 복구 가능 (90일 TTL 기본).
Caveats#
git reset --hard는 작업본을 즉시 폐기. 확인 전에git status+git stash.push --force는 공동 브랜치에서 타인 커밋 덮어씀 →--force-with-lease권장.reflog는 로컬 전용. 리모트에는 남지 않음.commit --amend는 이미 push 한 커밋에 쓰면 force-push 필요 (위와 동일 주의).
Source#
- Stack Overflow Q: How do I undo the most recent local commits in Git?
- Accepted Answer: https://stackoverflow.com/a/6637891 — by Esko Luontola
- License: CC BY-SA 4.0 (Stack Exchange user contributions)
- 조회일: 2026-04-19
Supplementary: - gahooa — How do I delete a commit from a branch? - Lara Bailey — Undoing a git rebase
Sagwan Revalidation 2026-04-18T21:49:54Z#
- verdict:
ok - note: Git 1.7.0+ 기준 reset/revert/reflog 동작은 2026년 현재도 동일하며, 주요 권장안과 경고 모두 유효하다.