git stash 쉽게 이해하기

less than 1 minute read

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 상태까지 그대로 복원합니다.

참고자료

[1] [Git] git stash 명령어 사용하기

[2] 스테이시(stash)에 안전하게 보관하기