
워킹 디렉토리(branch)를 switch 해야 하는데 작성한 내용을 commit 하고 싶지 않을 때가 있다.
방금 생각없이 짜놓은 코드가 있다고 치자.
그 코드를 잠깐 치워놓고 개발하고 싶으면 주석처리해도 되겠지만
주석처리된 코드는 commit할 때 반영이 된다.
그렇게 되면 주석도 commit 기록에 남아서 기록이 더러워질 수 있고,
기능 A, B를 만들어야하는데
기능A는 완성되었고 기능B는 반쯤 완성되어 다른 branch로 switch해야 할 때,
개발할 브랜치에 코드를 짜야하는데 main 브랜치에서 코드를 짜고 있었을 때,
그럴 때 git stash 를 사용해보자.
파일을 하나 만들어 코드를 짜고 commit 했다.
그리고 밑에 "2001-10-28"이라는 코드를 짜놨다고 치자.
근데 밑에 코드가 마음에 들지 않는다.
이걸 잠깐 삭제해버리고 싶으면 git stash 명령어 사용해보자.

git stash
터미널에 git stash 입력하면 방금 작성한 "2001-10-28" 코드는 잠깐 다른 공간에 보관된다.
(그래서 파일들이 최근 commit 상태로 되돌아감.)
- staging 된 것이든 안된 것이든 추적중인 파일은 다 이동 O
- 새로 만든 파일인데 staging 안되었다면 이동 X
git stash save "내 생일임 ㅋ"
git stash 할 때 메모도 함께 입력할 수도 있다.
git stash list
git stash는 여러번 할 수 있다.
현재 stash 되어있는 코드 목록을 전부 출력해주는 명령어.
git stash pop
git stash pop 번호
위에건 가장 최근 stash를 적용하고 동시에 stack에서 지워준다.
밑에건 특정 stash를 적용하고 동시에 stack에서 지워준다.
번호는 git stash list 하면 보이는 0, 1, 2 이런 숫자 넣으면 됨.

🔼 가장 최근에 들어온 것 부터 먼저나간다.
물론 현재 코드와 겹치는 부분이 있으면 conflict 나니까 알아서 잘 해결하자.
git stash drop 번호
git stash clear
위에건 특정 stash 삭제,
밑에건 모든 stash 삭제하는 명령어.
git stash -p
전체 말고 일부 코드만 git stash 하고싶으면 이거 쓰자.
그럼 파일을 훑어주면서 stash 할 지 의견을 물어보는데 y/n 으로 잘 대답하면 됨.