git stash로 코드 잠깐 보관하기

하마·2025년 2월 19일
0

git & github

목록 보기
8/14

방금 쓰레기같이 짜놓은 코드가 있다고 칩시다.
그 코드를 잠깐 치워놓고 개발하고 싶으면 주석처리 해도 되겠지만
git stash 명령어를 이용해도 잠깐 코드를 치울 수 있습니다.

1. 코드 잠깐 다른 곳에 치우기

파일 하나를 만들고 아무렇게나 짜서 커밋 해봅시다.

그리고 밑에 코드를 추가해놨다고 칩시다.
근데 방금 추가한 코드가 마음에 안드는겁니다.
이걸 잠깐 치워버리고 싶으면 git stash 명령어를 씁시다.

git stash 입력하면 방금 작성한 코드는 임시 보관함에 저장됩니다.
그래서 파일들이 가장 최근 커밋한 상태로 되돌아갑니다.

  • staging 된 것이든, 안된 것이든 추적중인 파일은 다 이동됩니다.
  • 새로 만든 파일인데 staging 안되었다면 이동 안됩니다.

git stash save "comment"
커밋할 때처럼 메모도 함께 입력할 수 있습니다.

git stash list
git stash 는 여러 번 할 수 있습니다.
현재 stash 되어있는 코드 목록을 전부 출력해주는 명령어입니다.

2. 치웠던 코드 다시 불러오기

git stash pop

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

FIFO 방식입니다.
여기서 현재 코드랑 겹치는 부분이 있으면 conflict 나니까 알아서 해결하십시오.

3. stash 관련 여러 명령어들

git stash drop stash아이디
특정 stash를 삭제합니다.

git stash clear
모든 stash를 삭제합니다.

git stash -p
일부 코드만 stash 하고싶으면 이거 씁시다.
그럼 파일을 훑어주면서 stash할지 의견을 물어보는데 알아서 하십시오.


Q. 주석이랑 다를 게 뭐임?

실은 코드를 주석처리하는거랑 용도가 비슷하긴 한데
주석처리된 코드는 commit할 때 반영됩니다. 그렇게 되면 주석도 commit 기록에 남아서 기록이 더러워질 수 있습니다.
주석처리한 내용을 commit 해버리기 싫을 때 git stash 쓰면 유용합니다.

또는 기능 A, B를 만들어야하는데
기능A는 완성되었고 기능B는 반쯤 완성된 경우
팀장이 "기능A 부분만 빨리 commit하고 merge 하라"고 하면
그럴 때 기능B를 stash 해놔도 좋을듯요

Q. 브랜치 새로 만들어서 거기가 작업하는거랑 뭐가 다름?

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




강의 출처

0개의 댓글