📦

Stash: 임시 변경사항 저장소

작업 중인 변경사항을 임시로 저장하고 나중에 복원하는 방법을 학습해보세요

💼실무 시나리오

현재 새로운 기능을 개발 중인데, 갑자기 긴급한 버그 수정 요청이 들어왔습니다. 작업 중인 코드는 아직 커밋하기에는 불완전하지만, 다른 브랜치로 전환해야 합니다. 이럴 때 Stash를 사용하여 현재 작업을 임시 저장할 수 있습니다.

Working Directory

현재 작업 중인 파일들

index.jsModified
style.cssModified

Staging Area

커밋할 준비가 된 파일들

package.jsonStaged

Repository

커밋된 파일들

README.mdCommitted

Stash

임시 저장된 변경사항들

📦

스태시된 변경사항이 없습니다

📚 Stash 명령어 가이드

기본 명령어

git stash

현재 작업 디렉토리와 스테이징 영역의 변경사항을 임시 저장

git stash pop

가장 최근 스태시를 복원하고 스태시 목록에서 제거

git stash apply

스태시를 복원하지만 스태시 목록에는 유지 (재사용 가능)

고급 명령어

git stash save "메시지"

의미있는 메시지와 함께 스태시 저장

git stash list

모든 스태시 목록 조회

git stash drop stash@{0}

특정 스태시를 삭제 (복원하지 않고)

🎯 실무 활용 사례

🚨긴급 버그 수정

새 기능 개발 중 긴급한 버그 수정 요청이 들어올 때, 현재 작업을 스태시하고 main 브랜치로 전환하여 핫픽스 작업

🧪실험적 코드 보관

여러 접근 방식을 시도해볼 때, 각각의 시도를 스태시로 저장하여 나중에 비교하고 최선의 방법 선택

🔄브랜치 전환

작업 중인 코드가 있지만 다른 브랜치의 코드를 확인해야 할 때, clean working directory 상태를 만들기 위해 사용

📋코드 리뷰 준비

커밋하기 전에 코드를 다시 검토하고 싶을 때, 작업을 스태시하고 fresh perspective로 코드 검토

Stash 사용 시 주의사항

👍 좋은 사례

  • • 의미있는 메시지와 함께 스태시 저장
  • • 정기적으로 스태시 목록 정리
  • • 스태시 적용 후 충돌 여부 확인
  • • 장기간 보관보다는 임시 저장 용도로 사용

⚠️ 주의사항

  • • Untracked 파일은 기본적으로 스태시되지 않음
  • • 스태시는 로컬에만 저장됨 (원격 저장소와 공유 안됨)
  • • 너무 많은 스태시는 관리가 어려워짐
  • • 바이너리 파일 스태시 시 용량 주의