우리는 또 다른 상황을 하나 가정할 것이다.
calculator.py 에서 파일을 하나 수정하고 있었는데 회사에서 급하게 다른 것을 먼저 해달라고 한다는 상황을 가정해보자.(상황극 왤케 많음)
그래서 우리는 함수를 추가 하다가 수정해야할 것 같아서 master branch에 가서 작업을 해야할 것 같다.
그래서 우리는 다시 master 브랜치로 가서 무료 버전의 라이센스를 수정하려고 브랜치를 변경하려고 했지만 오류메시지가 뜨면서 error메시지가뜬다. 에러메세지의내용을 보니 워킹디렉토리에있던 내용을 저장하지 않고 head의 위치를 바꾸게 되면 워킹디렉토리에서 작업하던 내용들이 사라질 수 있다고 경고하는 에러 메시지다.
그림으로 설명해보면 이런 상황이다. 우리는 작업하다가 master 브랜치로이동하려고 했는데 그럼 working directory의 내용도바뀌게되면서 저장되지 않는 작업들이 날아간다는 에러인 것이다.
이럴땐 우리는 git stash라는 커맨드를 사용하면 된다.
워킹 디렉토리에서 작업하던 내용을 git이 따 보관해준다. 그리고 이때 보관하는 장소를 stack이라고한다.
스택은 가장 먼저 저장한 것이 가장 나중에 꺼내지는 구조를 stack이라고 한다.