본문 바로가기
Programming

git 다른 브랜치에서 unstage된 내용을 원하는 브랜치로 옮기기

by peter paak 2020. 4. 1.
728x90

git stash작업중인 디렉토리의 현재 상태를 기록할 때 사용됩니다.

 

실행시 로컬에서 수정내역을 저장하고 원하는 위치에 옮길 수 있습니다. 예를들어 bgpark이라는 본인의 브랜치에서 작업을 해야하는데 실수로 master에서 작업을 하고 있었다면, bgpark이라는 브랜치로 checkout을 할 수 없을 것입니다. 그래서 그동안 로컬에서 작업한 내용들(add, commit한 내용들)을 stash에 모두 담아서 bgpark 브랜치에 쏟아내는 형태입니다. 기존의 master 브랜치의 내용들은 모두 깔끔하게 정리됩니다.

 

형태는 자료구조인 stack이랑 비슷합니다. pushpop 명령어가 있어서 수정 내역을 stash에 밀어 넣어주고 빼내는 단순한 역할을 합니다.

1.  git stash push
2.  git checkout 브랜치
3.  git stash pop

단계 1에서 git stash push를 하게되면 현재 작업중인 디렉토리의 unstage, stage의 내용을 모두 stash에 저장하게 됩니다. 만약에 어떤 내용들이 stash에 들어가있는지 확인하려면 git stash list로 확인이 가능합니다. 이제 원하는 브랜치로 이동하여 git stash pop 하여 stash에 기록된 내용들을 옮겨줍니다.

 

참고로 git stash push 대신 git stash save를 사용했습니다. 차이점은 push의 경우 메세지를 사용할 수 있고 save는 그렇지 않다는 점입니다. save가 조금 더 간편하게 사용할 수 있는 것 같습니다.

 

참고 : https://git-scm.com/docs/git-stash

728x90