💻데브노트소개
🚀

git stash 제대로 쓰기: 작업 중 급하게 브랜치 바꿀 때

데브노트 편집팀·2026.06.04·6분 읽기
X(트위터)
ADVERTISEMENT

급한 핫픽스 요청이 왔는데 지금 작업이 어중간하게 끝나 있을 때. 커밋하기엔 미완성이고, 버리기엔 아깝습니다. 이럴 때 git stash가 변경을 임시 보관함에 치워줍니다.

stash의 기본 흐름

# 현재 작업(추적 중인 파일의 변경)을 치워두고 깨끗한 상태로
git stash

# 보관된 목록 확인
git stash list
# stash@{0}: WIP on feature: 3f1a... 작업 중

# 다시 꺼내오기(보관함에서 제거하며 복원)
git stash pop

pop은 꺼내면서 보관 항목을 삭제하고, apply는 꺼내되 보관 항목을 남깁니다. 같은 변경을 여러 브랜치에 적용하고 싶다면 apply가 안전합니다.

추적되지 않는 새 파일도 함께

git stash는 기본적으로 추적 중인 파일만 치웁니다. 새로 만든(아직 git add 안 한) 파일까지 포함하려면:

git stash -u        # untracked 포함
git stash -a        # 무시된 파일까지 전부

메시지를 붙여 구분하기

stash가 쌓이면 무엇이 무엇인지 헷갈립니다. 메시지를 달아두세요.

git stash push -m "결제 폼 검증 작업 중"
git stash list
# stash@{0}: On feature: 결제 폼 검증 작업 중

특정 파일만 stash

전체가 아니라 일부 변경만 치우고 싶을 때:

git stash push -m "스타일만" src/styles.css

자주 쓰는 명령 정리

명령동작
git stash추적 파일 변경을 치움
git stash -uuntracked 파일까지 치움
git stash list보관 목록
git stash pop꺼내며 항목 제거
git stash apply꺼내되 항목 유지
git stash drop stash@{1}특정 항목 삭제
git stash clear전체 삭제

마무리 체크리스트

  • 급하게 브랜치를 바꿔야 하면 git stash로 깨끗하게
  • 새 파일도 치우려면 반드시 -u
  • 여러 곳에 적용할 변경은 pop 말고 apply
  • 메시지(-m)를 달아 나중의 나를 구하세요

stash는 "잠깐만요" 버튼입니다. 커밋 히스토리를 더럽히지 않고 문맥을 갈아탈 수 있습니다.

#Git#stash#협업#버전관리
X(트위터)
ADVERTISEMENT