Git 명령어 중 stash에 대해 정리해보았습니다.
git stash
stash는 "임시저장" 기능입니다.
commit 되지 않은 변경 사항을 별도의 stack 메모리 영역에 저장하여 보관합니다. stash 이후에 현재 branch는 가장 최근의 commit 버전으로 돌아갑니다.
즉, 현재 작업 중인 내용을 잠시 다른 저장 공간에 옮겨두는 기능입니다.
(주의사항 : git add가 되지 않은 변경점은 예외)
아래 2가지 Case에서 유용하게 사용됩니다.
feature branch를 새로 생성하지 않고 master/develop branch에서 개발을 진행한 경우, 현재 작업 내용을 새로운 branch로 옮겨야합니다.
--> Master에서 stash된 내용을 다른 branch에서 불러올 수 있습니다.
Branch를 이동하는 경우(checkout), 기존 작업 내용을 Commit해야 합니다. 급하게 다른 Branch로 이동이 필요할 때 현재 개발 내용 backup이 필요합니다.
--> 현재 개발 내용을 stash하고, 다른 branch 작업 후에 다시 현재 branch로 돌아와서 불러오기가 가능합니다.
git stash
현재 변경점들을 stack 영역에 새로운 stash로 생성합니다.
Saved working directory and index state \
"WIP on master: 049d078 added the index file"
HEAD is now at 049d078 added the index file
git stash list
현재 저장된 stash 목록을 출력합니다.
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
git stash apply
가장 최근에 저장한 stash를 불러와서 저장합니다.
git stash apply [stash 이름]
특정 stash를 불러와서 저장합니다. * stash 이름 예시 : stash@{0}
git stash drop
가장 최근에 저장한 stash를 삭제합니다.
git stash drop [stash 이름]
특정 stash를 삭제합니다. * stash 이름 예시 : stash@{0}
git stash pop
git stash apply + git stash drop을 합친 기능입니다.