Git | GitLab

[Git] stash - 작업 임시 저장

비번변경 2023. 5. 26. 22:01

stash

로컬 레포지터리에 작업하던 중 다른 작업이 들어와 잠시 브랜치를 변경해야 할 일이 있다고 하자. 만약 아직 완료되지 않은 작업을 commit 하기 껄끄럽고, 다시 돌아와 작업을 이어나가고 싶다면 git stash 명령을 사용할 수 있다.

stash 명령은 워킹 디렉터리에서 수정한 파일들에 대해서만 저장한다. 다시 말해 Modified면서 Tracked 상태인 파일과 staging area에 있는 파일만 Stash라는 공간에 저장한다.

 

 

stash 하기

아래와 같이 하나의 파일은 Staging 상태고, 다른 파일은 Modified 상태인 저장소가 있다고 하자.

아직 commit할 수 있을 정도로 작업이 되지 않았기 때문에 stash나 stash save 명령어로 저장한다.

git stash
git stash save

깨끗해진 워킹 디렉터리 상태를 확인할 수 있다.

 

 

stash 목록 확인

stash list 명령어로 저장한 stash 목록을 확인할 수 있다.

git stash list

 

 

stash 적용

저장했던 stash는 apply 명령어로 다시 적용할 수 있다. 적용할 stash 이름을 지정하지 않으면 가장 마지막으로 저장된 stash를 사용한다. apply 명령은 staged 상태까지는 돌려주지 않는다.

git stash apply
git stash apply [stash 이름]

참고로 stash는 꼭 저장한 브랜치에만 적용되는 것은 아니다. 어느 브랜치에서든 적용할 수 있고, 적용하다 충돌이 발생할 수도 있다.

 

 

stash 삭제

apply 명령은 저장한 stash를 적용할 뿐, 삭제하지는 않는다. stash 목록을 확인하면 적용한 stash가 남아있는 것을 확인할 수 있다. 이것을 더 저장하고 있을 필요가 없다면 drop 명령으로 삭제할 수 있다.

git stash drop [stash 이름]

 

 

stash 적용 및 삭제

만약 저장한 stash를 적용함과 동시에 stash 공간에서 삭제하고 싶다면 pop 명령어를 사용하면 된다.

git stash pop [stash 이름]

 

 

참고 문서

7.3 Git 도구 - Stashing과 Cleaning

https://backlog.com/git-tutorial/kr/reference/stash.html

https://gmlwjd9405.github.io/2018/05/18/git-stash.html

https://wikidocs.net/151852

728x90