본문 바로가기
개발 도구/Git

작업중인 코드 임시 저장하기(git stash)

by ♥︎해이나♥︎ 2022. 12. 14.
반응형

어떤 작업을 하던 중, 급하게 처리해야 하는 다른 작업건이 생겼다면, 그런데 그 우선작업건이 다른 브랜치에서 해야 하는 일이라면 어떻게 해야할까?

 

git stash 타이틀

 

작업을 마무리하지 못한 상태에서 다른 브랜치로 이동하게 되면 아래와 같은 에러가 발생한다. 현재 브랜치에서 변경된 내용을 커밋하지 않았기 때문에, 아직까지 작업한 내용이 모두 사라지게 된다고 경고하는 것이다.

 

git checkout 에러 발생

 

그렇다고 작업이 완료된 것이 아니니 커밋을 하기에도 부담스럽고... 하지만 우리의 깃에는 없는 것 빼고 다 있다. (훗) 이런 상황을 대비해서 코드를 임시저장할 수 있는 커맨드가 있다.

 

작업하던 코드 임시저장하고 싶을 때

아래와 같은 커맨드를 사용해서 작업하던 코드를 임시저장할 수 있다.

 

git stash

stash 구글 번역기 검색 결과

 

git stash를 한국어로 번역하면 '숨기는 장소'라고 한다. 이 커맨드를 사용하면 working directory에서 작업하고 있던 내용을 깃이 안전한 곳에 따로 보관하게 되며, 우리는 이 곳을 stack이라고 부른다. 

 

cf. stack은 후입선출의 특징을 가지는 자료구조를 일컫는 말이기도 하다. 스택(자료구조)에 대해 더 자세히 알고 싶다면 아래 링크를 클릭해서 나무위키를 살펴보면 도움이 될 것이다.

https://namu.wiki/w/%EC%8A%A4%ED%83%9D(%EC%9E%90%EB%A3%8C%EA%B5%AC%EC%A1%B0) 

 

스택(자료구조) - 나무위키

이 저작물은 CC BY-NC-SA 2.0 KR에 따라 이용할 수 있습니다. (단, 라이선스가 명시된 일부 문서 및 삽화 제외) 기여하신 문서의 저작권은 각 기여자에게 있으며, 각 기여자는 기여하신 부분의 저작권

namu.wiki

 

다시 git stash로 돌아와서... 해당 커맨드를 실행하면 Saved working directory and index state WIP on ~ 이라는 문구와 함께 코드가 저장된다.

 

git stash

 

git stash 제대로 저장되었는지 확인하는 방법

git stash를 한 후에, 코드가 제대로 저장되었는지 확인하려면 아래와 같은 커맨드를 사용하면 된다.

 

git stash list

git stash list

 

stack에 있는 내용 다시 불러오기

그리고 git stash를 사용하게 되면, 깃이 커밋 이후로 작업했던 내용을 모두 스택(숨겨진 장소)로 옮기고 working directory 내용을 초기화시킨다. 마지막으로 커밋한 버전으로 코드를 되돌리는 것이다. 때문에 다시 이어서 작업을 하려면 코드를 가져오는 과정이 필요하다. stack에 있는 내용을 다시 working directory로 가져오는 커맨드는 아래와 같이 입력하고 실행하면 된다.

 

git stash apply

git stash apply

 

위와 같은 메세지가 나온다면 다시 파일을 열어보자. 이어서 작업할 수 있도록 코드가 수정되어 있을 것이다. 작업을 마친 후 Staging Area로 옮기고 커밋까지 해주면 끝! 코드 임시저장, 실제로 자주 사용하는 유용한 기능인 것 같다.

반응형

댓글