git stash
git stash
는 수정 내용을 임시 저장하는 명령어이다.main
브랜치로부터feature-a
를 만들어 이 브랜치로 전환해서 작업하고 있었다고 가정했을 때, 작업 도중 잠깐 다시main
브랜치로 전환해야 할 일이 생겼다.- 이 때 변경사항을 커밋으로 남기기에는 아직 진행중이라 애매한 상황이라면, 임시 저장을 하는
git stash
를 활용하면 된다. git stash
명령을 쓰면 현재 변경사항을 별도의 스택 공간에 빼두게 된다.
1 |
|
- 만약 메시지를 남기고 싶다면
-m
을 활용하면 된다.
1 |
|
- 이제
main
브랜치로 전환할 수 있다.
1 |
|
git stash list
- 이렇게
stash
한 내역은 다음처럼git stash list
로 확인할 수 있다.
1 |
|
git stash pop
main
브랜치에서 해야 할 일을 다 마치고 이제 다시feature-a
로 돌아가 작업을 진행하고 싶다.- 이때는 브랜치 이동 후
git stash pop
명령어로 아까 스택에 넣었던 작업 내역을 다시 불러오면 된다.
1 |
|
git stash apply
git stash pop
과 비슷한 명령어로git stash apply
가 있다.- 이 둘의 차이점은 스태시한 내역을 저장하는 스택 공간에서 내역을 제거하는 지 여부이다.
git stash pop
의 경우 스택에서 작업 내역을 제거한다. 따라서git stash list
로 해당 작업이 빠져있는 것을 확인할 수 있다.- 반면
git stash apply
의 경우 스택에서 작업 내역을 빼지 않는다. - 따라서
git stash list
로 봐도 작업 내역이 그대로 남아있는 것을 볼 수 있다. - 여전히 스택에 남아있기 때문에 다른 곳에서 넣어둔 작업내역을 재사용할 수 있다.(여러 곳에서 apply 가능하다는 의미이다.)