작업중에 갑작스럽게 다른 작업을 진행해야 할 때, 작업중인 사항을 잠시 치워두는 방법입니다.
stash를 사용해서 잠시 코드를 다른곳에 보관한 후에, 내가 원하는 branch에 적용할 수 있습니다.
git stash
git stash
를 통해서 현재 적용된 commit이후로 변경된 모든 사항들이
stash 공간으로 이동됩니다.
git stash pop
다른 브랜치의 commit에 stash로 따로 저장해둔 코드들을 적용합니다.
git stash -p
-p
옵션을 통해서 hunk를 기준으로 변경사항을 하나씩 확인하며
원하는 변화만 stash에 담을 수 있습니다.
hunk
깃에서 하나의 변경사항이 담긴 단위입니다.
git stash -m "다음 스태시하는 이유"
어떤 이유로 stash했는지를 메시지로 남기고 stash를 할 수 있습니다.
git stash list
리스트상의 번호로 apply, drop, pop을 적용할 수 있습니다.
ex) git stash apply stash@{1}
git stash branch "브랜치명"
새로운 브랜치를 만들어서 pop(적용 및 삭제)를 진행합니다.
기존 작업 내용과 stash한 내용이 충돌 할 가능성을 염두해 두고 새로운 branch를 만들어서
테스트해 볼 수 있습니다.
명령어 | 설명 | 비고 |
---|---|---|
git stash | 현 작업들 치워두기 | 끝에 save 생략 |
git stash apply | 치워둔 마지막 항목(번호 없을 시) 적용 | 끝에 번호로 항목 지정 가능 |
git stash drop | 치워둔 마지막 항목(번호 없을 시) 삭제 | 끝에 번호로 항목 지정 가능 |
git stash pop | 치워둔 마지막 항목(번호 없을 시) 적용 및 삭제 | apply + drop |
💡 git stash branch (브랜치명) | 새 브랜치를 생성하여 pop | 충돌사항이 있는 상황 등에 유용 |
git stash clear 치워둔 모든 항목들 비우기 |