브랜치를 새로 파서 작업 중에 다른 브랜치의 코드를 참고하기 위해 브랜치를 이동해야 하는 일이 생겼다. 그런데 변경 사항을 커밋하지 않은 상태에서 브랜치를 이동하려고 하면 깃이 이동 못하게 막는다. 무의미한 커밋은 하고 싶지 않은데.. 어떻게 해야할까? 알아보자.
git stash를 사용하면 커밋하지 않고도 변경 사항을 임시 저장소에 보관할 수 있다.
$ git stash save "feat: add new feature"
Saved working directory and index state WIP on master: b1b36f1 "feat: add new feature"
HEAD is now at b1b36f1 "feat: add new feature"
그냥 git stash를 입력하거나
위와 같이 git stash save + "남길 메시지" 를 입력하면
해당 변경 사항이 임시 저장이 된다.
$ git stash list
stash@{0}: On master: feat: add new feature
임시 저장한 사항들을 확인할 수 있다
$ git stash apply
가장 최근에 저장된 스태쉬를 적용한다.
$ git stash pop
가장 최근에 저장된 스태쉬를 적용하고, 해당 스태쉬를 임시 저장소에서 삭제한다.
$ git stash apply stash@{1}
git stash list를 통해 stash의 번호를 확인하고 위와 같이 입력하면 된다.