ice rabbit programming

[Git] 임시 저장, Stash 본문

Development/Git

[Git] 임시 저장, Stash

판교토끼 2020. 6. 6. 22:45

이 기능도 학부 때는 몰랐는데, 굉장히 유용한 기능이다.

stash는 넣어두다라는 뜻인데, 이름 그대로 commit하지 않고 임시로 넣어두는 것이다. 필자는 다른 브랜치로의 checkout이 필요한데 아직 작업 중일 때 주로 사용한다(작업 중이니 아직 commit이 불가하므로). 만약 commit이나 stash를 하지 않고 다른 브랜치로 checkout 하려고 시도하면 에러가 발생한다.

git stash // 작업 중이던 파일을 임시 저장
git satsh save // 위와 같은 동작, 임시 저장
git stash list // 임시 저장된 stak의 list를 본다.
git stash apply [이름] // list에서 확인한 이름의 stash를 가져온다.
git stash apply // 최신의 stash된 작업을 가져온다.
git stash apply --index // 위와 같지만 --index 옵션을 줄 경우 staged 정보까지 가져온다.
git stash drop // apply는 단순히 적용만 시켜주므로, stash 이력을 삭제한다.
git stash show -p | git apply -R // stash를 취소하고 가장 마지막 기록으로 되돌린다.

 

대략 자주 쓰는 명령어는 위와 같다.

주로 git stash -> git apply의 흐름으로 많이 쓰고, drop은 필자는 잘 쓰지 않는다. 그리고 꼭 stash를 했던 브랜치에서 되가져올 필요는 없으며, 다른 브랜치에서 적용했을 때 충돌이 나면 git에서 알려 준다.