git stash 쉽게 이해하기
git stash를 사용하는 이유
한 브랜치에서 작업을 하다가 다른 브랜치로 checkout 해야하는 경우가 있습니다.
이때 git checkout [브랜치]
를 사용하면 다음과 같은 오류를 만나게 됩니다.
rror: Your local changes to the following files would be overwritten by checkout:
_posts/2021-03-17-gitStash.md
Please, commit your changes or stash them before you can switch branches.
즉, 현재 로컬의 상태에 변화가 있다면 브랜치를 변경하기 전에 반드시 commit
혹은 stash
를 사용해야 합니다.
git commit
후에 브랜치를 변경할 수도 있지만, commit
하지 않고 나중에 다시 돌아와서 작업을 하기 위해서 git stash
를 사용하면, git stash apply
혹은 git stash pop
를 통해 나중에 불러올 수 있습니다.
또한 이렇게 저장한 내용을 다른 브랜치에 적용하는 것도 가능합니다. (잘못된 브랜치에서 작업 시 유용하게 사용)
git stash 필수 명령어
다음은 git stash
를 사용하기 위한 필수 명령어입니다.
명령어 | 역할 |
---|---|
git stash (save) |
작업 내용을 stash 공간에 안전하게 보관합니다. |
git stash list |
보관 중인 stash 목록을 조회합니다. |
git stash apply |
stash에 저장된 내용을 현재 브랜치에 적용합니다. |
git stash drop |
stash에 저장된 내용을 삭제합니다. |
git stash pop |
stash에 저장된 내용을 현재 브랜치에 적용한 후, 삭제합니다. (apply + pop ) |
TIP git stash apply –index
–index
옵션을 주면 Staged 상태까지 그대로 복원합니다.