Git

git>git stash로 코드 잠깐 보관하기

연습노트 2024. 7. 24. 17:03

방금 쓰레기같이 짜놓은 코드가 있다고 칩시다. 

그 코드를 잠깐 치워놓고 개발하고 싶으면 주석처리해도 되겠지만 

git stash 명령어를 이용해도 잠깐 코드를 치울 수 있습니다. 

 

 

 

 

 

git stash 사용해서 코드 잠깐 다른 곳에 보관하기

 

aaaaaaaaaaaaa

파일 하나 만들어서 이렇게 코드를 짜서 commit 해봅시다. 

 

 

aaaaaaaaaaaaa
bbbbbbbbbb

그리고 밑에 bbbbb어쩌구 코드를 짜놨다고 칩시다.

근데 밑에 코드가 마음에 안드는겁니다.

이걸 잠깐 삭제해버리고 싶으면 git stash 명령어를 씁시다. 

 

 

 

 

 

 

git stash

터미널에 git stash 입력하면 방금 작성한 bbbb 어쩌구 코드는 잠깐 다른 공간에 보관됩니다. 

(그래서 파일들이 최근 commit 상태로 되돌아갑니다.)

- staging 된 것이든 안된 것이든 추적중인 파일은 다 이동됩니다.

- 새로 만든 파일인데 staging 안되었다면 이동안됩니다. 

 

 

 

git stash save "bbb 코드짰는데 망함"

git stash 할 때 메모도 함께 입력할 수도 있습니다. 

 

 

 

git stash list

git stash는 여러번 할 수 있습니다.

현재 stash 되어있는 코드 목록을 전부 출력해주는 명령어입니다. 

 

 

 

 

 

 

보관했던 코드 다시 불러오기 

 

git stash pop

이러면 잠깐 보관했던 코드를 다시 불러옵니다. 

git stash 했던 코드가 여러개 있으면 가장 최근에 보관했던 코드부터 먼저 불러옵니다. 

 

 

 

 

▲ 가장 최근에 들어온 것 부터 먼저나갑니다. 

물론 현재 코드와 겹치는 부분이 있으면 conflict 나니까 알아서 해결하면 됩니다. 

 

 

 

 

 

 

 

stash 관련 여러 명령어들

 

git stash drop 삭제할id
git stash clear

위에건 특정 stash 삭제, 

밑에건 모든 stash 삭제하는 명령어입니다.

삭제할 id는 git stash list 하면 보이는 0, 1, 2 이런 숫자 넣으면 됩니다. 

 

 

 

git stash -p 

전체 말고 일부 코드만 git stash 하고싶으면 이거 씁시다.

그럼 파일을 훑어주면서 stash 할 지 의견을 물어보는데 y/n 으로 잘 대답하면 됩니다. 

 

 

 

 

 

 

Q. 주석처리해놓는게 더 쉬울듯 

실은 코드를 주석처리하는거랑 용도가 비슷하긴 한데 

주석처리된 코드는 commit할 때 반영됩니다. 그렇게 되면 주석도 commit 기록에 남아서 기록이 더러워질 수 있습니다. 

주석처리한 내용을 commit 해버리기 싫을 때 git stash 쓰면 유용합니다. 

 

또는 기능 A, B를 만들어야하는데

기능A는 완성되었고 기능B는 반쯤 완성된 경우 

팀장이 "기능A 부분만 빨리 commit하고 merge 하라"고 하면

그럴 때 기능B를  git stash 해놔도 좋을듯요

 

 

 

Q. 브랜치 새로 만들어서 거기다 코드짜놓는거랑 다를바 없는데요?

들킴

간단히 브랜치만들어서 거기 보관하는 것도 나쁘지않습니다.