GIT

Git stash 실전 예제로 이해하기: 작업 저장 → 브랜치 이동 → 복원까지

JeongPark 2025. 6. 5. 20:12
728x90

Git stash란? 언제 사용하면 좋을까?


Git을 사용하다 보면, 작업 중이던 걸 잠깐 보류하고 다른 작업을 해야 할 때가 있다.
이럴 때 유용하게 쓰는 명령어가 바로 git stash.


언제 stash를 사용할까?

  1. 브랜치를 이동해야 하는데 작업 중인 코드가 있음
    → 작업을 커밋하지 않으면 checkout이 안 되거나 충돌 가능성이 있음
  2. 커밋하기엔 애매한 상태지만, 지금 상태를 저장해두고 싶을 때
    → 반쯤 완성된 코드인데 커밋하기엔 부자연스러울 때

비유로 이해해보기

지금 짐을 싸는 중인데 갑자기
“잠깐 다른 데 좀 다녀와야 해!” 라는 상황이 생겼다고 상상해보자.

  • 짐을 다 정리하긴 애매하니까
  • 일단 가방에 넣고 옆방에 두는 느낌
  • 나중에 돌아와서 다시 짐을 꺼내 정리 후 계속 작업을 이어가는 것

이게 바로 git stash의 개념이다.
현재 작업 중인 내용을 임시 공간에 저장해두고, 나중에 꺼내오는 기능이다.


실습용 예시 상황

아래는 실제로 stash를 사용할 수 있는 예시 흐름이다.


1. main 브랜치에서 작업 중

git checkout main
touch user.js     # 파일 생성
vi user.js        # 파일 수정 중...

작업이 아직 덜 끝났는데…


2. 갑자기 bugfix/login 브랜치에서 버그를 고쳐야 하는 상황 발생

git stash         # 현재 작업 상태 임시 저장
git checkout bugfix/login
# 로그인 버그 수정
git commit -am "fix: 로그인 시 세션 오류 수정"

3. 다시 main으로 돌아와서 작업 이어가기

git checkout main
git stash pop     # 아까 저장했던 작업 복원

stash는 아래와 같이 사용된다:

  • git stash : 현재 변경사항을 stash에 저장
  • git stash pop : 가장 최근 stash를 꺼내서 복원 (꺼내고 나면 리스트에서 제거됨)
  • git stash list : 저장된 stash 목록 확인
  • git stash apply : 복원은 하지만 stash 목록에는 남겨두고 싶을 때

마무리 요약

  • git stash는 작업을 임시로 보관하는 도구
  • 브랜치 전환 전, 혹은 중간 저장이 필요할 때 유용
  • 비유하자면, “작업 중인 짐을 가방에 넣고 다른 방에 다녀오는 것”
  • 실무에서도 갑작스러운 버그 수정이나 컨텍스트 전환이 잦기 때문에 자주 쓰인다

 이 글은 Git을 배우는 학생의 stash 관련 질문을 바탕으로 정리한 실전 설명입니다.
stash를 한 번 실습해보면, Git을 훨씬 더 유연하게 다룰 수 있게 됩니다.

반응형