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 실수는 누구나 합니다.
중요한 건 되돌릴 수 있는 방법을 알고 있느냐입니다.

이번 포스팅으로 어떤 상황에서 어떤 명령어를 써야 할지 감이 잡히셨길 바랍니다!

반응형