갑자기 test 해야할 일이 생길 때
내가 잠시 작업하고 있는 내용들을 저장해두고
branch 전환을 위해서 쓸 수 있다.
버그를 고치고 있는데 다른 시도를 해보고 싶은데
여러 가지 시도들을 잠시 저장해두고 싶을 때
준비되지 않은 파일들을 commit하기보다는
stash 커멘드를 이용해서 stash stack에 잠시 저장을 해두고
test 하고싶은 branch를 checkout해서 확인한 다음에
다시 내가 원하는 순간에 stash stack에 있는 내용들을
다시 working directory로 가지고 올 수 있다.
about.txt에 수정하고 있을 때
echo add >> about.txt git status 로 확인
stash하기
git stash push -- 아무런 타이틀 없이 저장 git stash push -m "first try"
수정된 파일 올리기
ehco add >> about.txt git status -s 로 확인하기 git add . --- staging area로 옮기기 git status -s 로 다시 확인하기
내가 index에 있는, staging area에 있는 것을 유지하면서
stash에 저장하고 싶다면
작업하고 있는 파일은 그대로 내 staging area에 두고 싶다면
git stash push -m "second try" --keep-index
tracking되지 않은 파일들도 stash에 올리고 싶다면
tracking 되지 않은 파일을 자동으로 stash에 저장되지 않은 것을 확인
echo new > new.txt git status -s --상태확인 git stash git status -s --다시 확인했을 떄 stash에 저장되지 않은 것을 확인
tracking되지 않은 파일을 자동으로 stash에 올리기
git stash -u (untracking의 약자)
stash 목록 확인하기
git stash list
각각 stash에서 어떤 것이 수정되었는지 확인하고싶다면
git stash show [복사한 stash 아이디] git stash show [복사한 stash 아이디] -p >조금 더 자세하게 보기
fix branch로 전환해서 내용들을 확인하고
이제 다시 나의 업무를 하고싶을때
작업하고 싶은 stash 복사하기
git stash list
작업하고있는 파일들이 나의 index나 working directory에 들어옴
git stash apply [복사한 stash 아이디] git stash apply --- 가장 최근의 commit을 apply
working directory 깔끔하게 만들기
working directory에 있는 파일들 삭제하기
git restore . git status 확인 git clean -fd --- 깔끔하게 지우기
stash를 적용하면서
목록은 그대로 유지하고 싶다면 apply
하나씩 가지고 나오면서
목록에서 제거하고 싶나면 pop
제일 위에 있는 내용이 working directory로 옮겨져 나온다.
git stash pop
더 이상 필요없는 것은 삭제하기
git stash drop [삭제하고 싶은 stash 아이디]
전체 다 삭제하기
git stash clear
지금 현재 branch가 아니라
stash에 있는 것들을 적용하면서
새로운 branch를 만들고 싶다면
git stash branch [내가 원하는 branch이름]