본문 바로가기

소프트웨어-이야기/git

[git]STASH - 브랜치에서 다른 브랜치로 이동하기 전에, 커밋전에! 내가 한 코드 임시 저장하기!

GIT STASH


이번 주에 요긴하게 쓰고, 너무 마음에 들었던 GIT Stash에 대해서 정리해보고자 한다.




일을 하다보면 이럴 때가 있다.

지라 티켓을 보고, master 브랜치에서 해당 과제의 브랜치를 따서 마구 작업을 하고 있을 때 말이다.


그런데 아직 commit을 하기에는 부족할 때가 있다. 

p "로그로그로그" 처럼 콘솔 로그를 마구 찍으면서 로직을 파악하고 있다거나,

database.yml의 db의 development 환경값을 기존 브랜치랑 다른 값으로 설정하고 있었다거나..

개발용으로 수정해서, commit을 하면 안되는 그런 로직들이 있다.


그런데 갑자기 다른 과제의 로직을 봐야할 때가 생긴다. 그래서 내가 지금 작업하고 있는 브랜치에서 다른 브랜치로 check out을 해야할 때가 있다.

이 때, 그냥 다른 브랜치로 바로 check out을 해버리면, 지금까지 작업했던 내역들이 전부 날아가게 된다.

commit을 안했기 때문! 그런데 commit하기에는 애매한 코드들이라면... 어떻게 해야할까??


이럴 때, 바로 STASH를 쓰면 된다! 


(나는 source tree를 쓴다. 그래서 source tree를 예시로 보여주고자 한다.)


1. A브랜치 stash 하기!



현재 작업중이던, STASH를 해야하는 브랜치를 A브랜치로 칭하겠다. 그리고 중간에 잠깐 체크아웃해서 작업을 봐야하는 과제는 B브랜치로 칭하겠다.

B 브랜치로 checkout을 하기 전에, 소스트리의 위에 Stash버튼을 누른다.

그리고 message를 입력한다. 어떤 작업을 Stash하는지!


2.  B 브랜치로 체크아웃하여 작업하기.

3. B 브랜치에서 작업 종료 후, 기존 브랜치 A로 CHECK OUT하기

4. STASH 해두었던 작업 빼내기

 A브랜치로 돌아왔으면, 좀아까 내가 작업하고 있던 애들을 STASH에서 빼내야한다.

어떻게 하면 STASH를 빼낼 수 있을까.


우선 소스트리에서 Terminal 버튼을 클릭해서 , 터미널을 본다. 



git stash list 

이 명령어를 치면 내가 stash한 목록들을 볼 수 있다.


git stash apply

이 명령어를 치면 내가 가장 최근에 넣은 stash가 적용된다.


stash 적용 끝!! 




참쉽죠??