728x90
git stash
는 작업중인 디렉토리의 현재 상태를 기록할 때 사용됩니다.
실행시 로컬에서 수정내역을 저장하고 원하는 위치에 옮길 수 있습니다. 예를들어 bgpark이라는 본인의 브랜치에서 작업을 해야하는데 실수로 master에서 작업을 하고 있었다면, bgpark이라는 브랜치로 checkout을 할 수 없을 것입니다. 그래서 그동안 로컬에서 작업한 내용들(add, commit한 내용들)을 stash에 모두 담아서 bgpark 브랜치에 쏟아내는 형태입니다. 기존의 master 브랜치의 내용들은 모두 깔끔하게 정리됩니다.
형태는 자료구조인 stack이랑 비슷합니다. push
와 pop
명령어가 있어서 수정 내역을 stash에 밀어 넣어주고 빼내는 단순한 역할을 합니다.
1. git stash push
2. git checkout 브랜치
3. git stash pop
단계 1에서 git stash push
를 하게되면 현재 작업중인 디렉토리의 unstage, stage의 내용을 모두 stash에 저장하게 됩니다. 만약에 어떤 내용들이 stash에 들어가있는지 확인하려면 git stash list
로 확인이 가능합니다. 이제 원하는 브랜치로 이동하여 git stash pop
하여 stash에 기록된 내용들을 옮겨줍니다.
참고로 git stash push
대신 git stash save
를 사용했습니다. 차이점은 push의 경우 메세지를 사용할 수 있고 save는 그렇지 않다는 점입니다. save가 조금 더 간편하게 사용할 수 있는 것 같습니다.
728x90