Data-Driven System Development/Git

Git Stash로 다른 브랜치로 작업 내용 옮기기 (그리고 바로 삭제)

Data Jun 2025. 3. 27. 09:19

가끔 우리는 의도하지 않은 브랜치에서 작업을 시작하는 실수를 한다.
예를 들어, main 브랜치에서 코딩을 시작했는데, 사실은 feature/login 브랜치에서 했어야 했다면?

이럴 때 git stash를 활용하면, 작업 내용을 안전하게 임시 저장하고 다른 브랜치로 옮길 수 있다.
그리고 원하지 않게 stash stack에 쌓이는 걸 방지하고 싶다면, drop을 곁들이면 깔끔하게 정리까지 가능하다.

상황 예시

  • 현재 브랜치: main
  • 작업 내용 있음 (커밋 전 상태)
  • 원래 작업해야 할 브랜치: feature/login

Step-by-Step

 1. 작업 내용 임시 저장 (stash)

git stash

변경사항이 stash stack에 저장된다. 이때 작업 디렉토리는 깨끗한 상태로 돌아간다.

 

2. 원하는 브랜치로 이동

git checkout feature/login

원래 작업해야 했던 브랜치로 이동.

 

3. 작업 내용 적용과 동시에 drop

git stash pop

가장 최근 stash 내용을 적용하면서 stack에서 제거된다.

 

 

stash pop vs stash apply

 

유용한 팁: 특정 stash만 drop 하기

만약 여러 stash가 쌓여있다면, 원하는 stash만 선택해서 제거할 수 있다:

git stash list
git stash drop stash@{2}

 

마무리

  • git stash는 브랜치 이동 시 작업물 보관에 탁월하다.
  • stash pop은 apply와 drop을 한 번에!
  • 실수로 브랜치에서 작업했더라도, 당황하지 말고 stash로 옮기자.