• 현재 stage에 있는 작업중인 파일들을 임시저장해 두는 명령어
  • stash : 넣어두다

Git을 사용할 때 기존 브랜치에서 작업을 하다가 다른 작업을 먼저 해야하는 상황을 마주할 수 있다.

  1. 개발중에 다른 브랜치로 이동해야 할 때
  2. 개발중에 hotfix가 필요할 때
  3. pull을 우선 받아야할 때
  4. 이전 커밋내용을 수정해야 할 때

이와 같이 작업 중에 다른 브랜치로 이동하려면 작업중이던 내용을 commit해야 한다.
하지만, stash 명령어로 작업내용을 임시저장하면 commit을 하지 않고도 가능하다.
Working Directory에 있는 파일만 임시저장공간(스택)에 저장된다.

  • 스택에 임시저장하기
$ git stash
$ git stash save {description}
  • 임시저장 스택 리스트보기
$ git stash list

stash@{0}: WIP on master: 52976d1 admin auth
  • 임시저장된 내용 적용하기 (스택에 계속 남아있음)
$ git stash apply stash@{index}
$ git stash apply     # 가장 최근 stash내용 적용
  • 임시저장된 내용 꺼내와서 적용하기 (스택에서 제거)
$ git stash pop stash@{index}
$ git stash pop     # 가장 최근 stash내용 적용
  • 임시저장된 내용 브랜치에 적용하기 (스택에서 제거)
    • feature/admin 브랜치에 stash@{index} 적용
$ git stash branch feature/admin stash@{index}
  • 임시저장 스택에서 제거
$ git stash drop stash@{index}
$ git stash drop     # 가장 최근 stash내용 삭제
  • 임시저장 스택 clear
$ git stash clear