작업을 하다가 아직 커밋을 할 정도가 아닐 때, Stash stack에 작업하던 것을 잠시 넣어놓을 수 있다. 예를 들면, 버그를 고칠 때, 이런 저런 시도를 할 때, a라는 시도를 한 후, stash로 저장하고, 다시 b라는 시도를 하고 stash로 저장하고, 해결을 하면 그 중에 하나를 꺼내서 커밋 하면 된다.
- git stash push -m "메세지" : 현재 working tree와 stating area에 있는 것들을 stash stack에 push 한다.
- git stash push -m "메세지" --keep-index : 현재 staging area에 있는 것들을 그대로 두고 stack에만 저장하고 싶을 때 (index는 staging area를 칭하는 말임)
- git stash list : stash stack의 리스트를 보여준다.
- git stash apply stash@{1} : 지정된 stash stack의 것을 working tree로 가져온다. 이때, stack에는 변화가 없다.
- git stash pop : 맨 위의 것(가장 최근의 것) 부터 pop 하여 working tree로 가져온다. 이때, stack의 맨 위에 있는 것이 삭제된다.
- git stash drop stash@{1} : 지정된 것을 stash stack에서 지운다.
- git stash clear : stash stack을 비운다.
- git stash branch 브랜치명 : 브랜치를 만들어 현재 stash stack의 맨 위에 있는 작업을 빼서 이동한다. (유용)