가끔 우리는 의도하지 않은 브랜치에서 작업을 시작하는 실수를 한다.
예를 들어, 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로 옮기자.
'Data-Driven System Development > Git' 카테고리의 다른 글
Git Cherry-pick: 원하는 커밋만 쏙쏙 골라오기 (0) | 2025.03.27 |
---|---|
Git Stash: 작업 중인 변경사항 잠깐 보관하기 (0) | 2025.03.26 |
Git Rebase 완벽 가이드: 병합보다 깔끔한 히스토리 정리법 (0) | 2025.03.26 |
Git --graph로 커밋 히스토리를 시각적으로 확인하기 (0) | 2025.03.26 |
되돌아가고 싶을 땐 git reflog (0) | 2025.03.23 |