Git
Git 실수했을 때 되돌리는 법! reset, revert, stash 차이와 사용법 완전 정리
jonbeo
2025. 7. 13. 11:25
반응형
Git으로 작업하다 보면 한 번쯤은 이런 생각을 하게 됩니다:
“아... 이전 상태로 돌리고 싶다...”
“방금 커밋 잘못한 것 같은데?”
“코드는 지우고 싶은데, 나중에 다시 보고 싶다…”
이럴 때 사용하는 명령어들이 바로
git reset, git revert, git stash 입니다!
이번 포스팅에서는 각 명령어의 차이점, 사용 시점, 주의할 점까지 예제를 통해 깔끔하게 정리해드리겠습니다.
🧯 1. git reset - 커밋을 과거로 되돌리기 (히스토리 변경)
git reset --hard [커밋 해시]
- 특정 시점으로 되돌리고, 그 이후의 커밋은 모두 제거
- --soft: 커밋만 되돌림 (파일은 그대로)
- --mixed: 인덱스까지 초기화
- --hard: 모든 파일 상태까지 초기화 (주의! 되돌릴 수 없음)
✅ 언제 쓰나?
- 잘못된 커밋 히스토리를 삭제하고 싶을 때
- 방금 커밋을 취소하고 다시 커밋하고 싶을 때
🌀 2. git revert - 커밋을 취소하는 ‘새로운 커밋 만들기’
git revert [커밋 해시]
- 원래의 커밋은 그대로 두고, 취소하는 내용의 새 커밋을 만듦
- 협업 시에도 안전한 방법
- GitHub에 푸시한 커밋을 되돌릴 때 권장
✅ 언제 쓰나?
- 이미 푸시된 커밋을 되돌려야 할 때
- 다른 사람과 협업 중일 때
- reset은 위험하다고 느껴질 때
📦 3. git stash - 임시로 저장해두고 다른 작업 먼저 할 때
git stash
- 작업 중인 변경사항을 임시 보관
- 브랜치를 옮기거나 급한 이슈를 먼저 처리할 때 유용
💡 자주 쓰는 명령어
git stash # 현재 변경사항 저장
git stash list # 저장된 stash 목록 보기
git stash apply # 최근 stash 복원 (리스트는 유지됨)
git stash pop # 복원 + 리스트에서 제거
✅ 언제 쓰나?
- 작업 중이던 파일을 지우지 않고, 브랜치만 빠르게 이동하고 싶을 때
- 임시 저장소처럼 쓰고 싶을 때
🧠 3줄 요약 비교
명령어 | 역할 | 특징 |
reset | 커밋 되돌림 (히스토리 변경) | 위험하지만 깔끔 |
revert | 커밋 취소 (새 커밋 생성) | 협업 시 안전 |
stash | 변경사항 임시 보관 | 코드 임시 저장소 역할 |
⚠️ 주의할 점
- git reset --hard는 진짜 조심! → 푸시 전이면 가능하지만, 푸시 후에는 협업 히스토리 깨짐
- revert는 안전하지만 히스토리가 길어질 수 있음
- stash는 너무 오래 두면 어디에 썼는지 잊어버릴 수 있음 😅
✅ 마무리하며
Git 실수는 누구나 합니다.
중요한 건 되돌릴 수 있는 방법을 알고 있느냐입니다.
이번 포스팅으로 어떤 상황에서 어떤 명령어를 써야 할지 감이 잡히셨길 바랍니다!
반응형