가끔 작업을 하다가 branch를 변경할 때가 있는데 이럴 때마다 현재 작업하고 있던 것들을 add하고 Commit을 해야했었다. 하지만 stash를 이용하면 이런 불편한 점을 해결 할 수 있다.
stash란?
아직 마무리 되지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어이다. 즉 commit하지 않고 잠시 저장이 가능하다.
이 명령어를 사용하면 스택에 새로운 stash가 생성되고 working directroy는 깨끗해진다. 즉 다른 브랜치로 이동할 수 있다.
내가 저장한 stash 목록을 확인 할 수 있다.
이전에 git stash명령어로 임시저장했던 작업을 다시 가져온다.
git stash apply // 가장 최근 stash를 가져온다.
git stash apply [stash 이름] // stash 이름에 해당하는 stash를 가져온다.
git stash apply --index // Staged상태였던 이전 작업들을 다시 Staged상태로 복원하고 싶을 때 사용한다.
apply 명령어를 실행하더라도 스택에 여전히 남아있다.
이 스택에 남아있는 stash를 제거하려면 위 명령어를 사용하면된다.
적용과 동시에 스택에 남아있는 stash를 제거하고싶다면 이 명령어를 쓰면 된다.
잘못 stash 적용했다면 위의 명령어를 쓰면 된다.
// 가장 최근의 stash를 사용하여 패치를 만들고 거꾸로 적용
git stash show -p | git apply -R
// stash 이름에 해당하는 stash를 이용하여 거꾸로 적용
git stash show -p [stash 이름] | git apply -R