프로젝트를 진행하다보면 Main branch에 여러 branch를 만들고 작업하는 경우가 있을 것이다.
예를 들어 a branch에서 작업하다가 main branch에서 급하게 수정해서 반영해야하거나, 다른 동료의 코드를 봐주어야할 때 지금까지 작업했던 내용들을 commit하고 branch를 바꾸기에는 애매한 상황이 있을 것이다.(commit 하기엔 애매한 코드라던가..)
그런 경우 git stash 를 통해 지금까지 작업한 내용을 임시저장하고 branch 전환하면 매우 편리하다.
1. git stash 로 임시저장하기
위와 같이 a-branch에서 작업하던 내용이 있을 경우 git stash 를 통해 임시저장을 할 수 있다.
git stash를 할 때에도 2가지 방법이 있다.
- git stash
git stash
위와 같이 git stash 만 하는 경우 변경사항이 무작위 이름으로 stack에 저장된다.
- git stash save ""
git stash save "title"
위와 같이 git stash save "" 로 해당 변경사항에 이름이나 정보를 넣는 경우 git stash list로 확인해봤을 때 한눈에 뭐와 관련된 변경사항인지 쉽게 파악할 수 있다.
2. stash 에 있는 항목 불러오기
stash에 저장된 항목을 불러오기 위해서는 2가지 방법이 있다.
- 변경사항 적용 및 삭제하기
stash에 저장된 항목을 불러오려면 기본적으로 다음 명령어를 입력하면 된다.
git stash pop
하지만 위 명령어만 입력하게 되면 가장 최근에 stack에 추가된 변경사항을 불러오면서 동시에 삭제하게 된다.
위 stash list에서 가장 처음에 넣었던 변경사항을 가져오려면 콜론(:) 앞에 stash@{번호}를 git stash pop 뒤에 넣어주면 된다.
- 변경사항 적용만 하기
stash에 저장된 항목 불러오기만 하기
git stash apply
이 명령어도 pop과 마찬가지로 위 명령어만 입력 시 가장 최근의 변경사항을 적용만하게 된다.(삭제 X)
원하는 변경사항을 적용하려면 pop과 마찬가지로 stash@{번호}를 git stash apply 뒤에 넣어주면 된다.
3. 변경사항 폐기하기
stash에 저장된 항목을 폐기하려면 다음과 같이 명령어를 입력하면 된다.
git stash drop
이 명령어도 pop과 마찬가지로 위 명령어만 입력 시 가장 최근의 변경사항을 폐기하게 된다.
원하는 변경사항을 폐기하려면 pop과 마찬가지로 stash@{번호}를 git stash drop 뒤에 넣어주면 된다.
4. 변경사항 삭제하기
stash에 저장된 항목들 삭제하기
git stash clear