git stash 개념
: 자신이 어떤 작업을 하던 중에 다른 요청이 들어와, 하던 작업을 멈추고 잠시 브랜치를 변경해야 할 일이 있다. 이때, 아직 완료하지 않은 일을 commit 하는 것이 껄끄럽다.
git stash명령어를 사용해 아직 완료하지 않은 일을 commit하지 않고 나중에 다시 꺼내와 마무리할 수 있다.
- git stash 명령을 사용하면 워킹 디렉토리에서 수정한 파일들만 저장한다.
- stash란 아래에 해당하는 파일들을 보관하는 장소이다.
(1) Modified이면서 Tracked 상태인 파일
- Tracked상태인 파일을 수정한 경우
- Tracked : 과거에 이미 commit하여 스냅샷에 넣어진 관리 대상 상태의 파일
(2) Staging Area에 있는 파일(Staged 상태의 파일)
- git add 명령을 실행한 경우
- Stage상태로 만들려면 git add 명령을 실행해야 한다.
- git add는 파일을 새로 추적할 때도 사용하고 수정한 파일을 Staged상태로 만들 때도 사용한다.
1. 하던 작업 임시로 저장하기
> git stash
> git stash save // 옵션 파라미터를 허용하지 않음. 현재 작업을 저장해두고 branch를 head로 돌린다.
> git stash push // 옵션 파라미터 사용할 수 있음. ex) -m 과 함께 사용해서 메시지를 저장할 수 있음
2. stash 목록 확인하기
>git stash list
3. stash 적용하기 (했던 작업을 다시 가져오기)
> git stash apply // stash list에 남아있음. 가장 최신 버전을 적용
> git stash pop // stash list에서 지우고 적용
> git stash apply --index // Stage상태였던 파일을 자동을 다시 Staged상태로 만들어줌. 원래 작업하던 파일의 상태로 복원
> git stash apply stash@{3}
4. stash 제거하기
> git stash drop // 스택에 남아있는 가장 최근 stash 제거
> git stash clear // 전체 stash 제거