본문으로 바로가기

[GIT] 변경 내용 임시저장 - Stash

category Helloworld!/GIT 2016. 5. 11. 12:41
A와 B가 서로 같은 소스코드에서 작업을 하던 도중 A가 작업을 마쳤는데 B가 그 소스코드를 자신이 작업하던 소스코드에 적용한 후 다시 후 작업을 진행해야할 경우 B는
1) 현재 본인이 작업한 상태를 우선 Commit을 해서 저장한 다음 A의 소스를 받아 Conflict 난 부분을 수정한다
(물론 Conflict 가 안날수도 있지만... 이게 최고이긴 하지만..)
2) Stash를 이용해 임시로 현재 상태를 저장한다.

1번째 방법으로 많이 사용을 했지만 Conflic 해결에 가끔 어려움이 생겨서 Stash 을 알아보던 중 포스팅도 함께 한다.

1. 작업 도중 Stash 를 할 경우 명령어는
 git stash (혹은 git stash save)
이고, 소스트리에서는 다음과 같이 Stash 버튼을 눌러주면 된다.


2) 그러면 다음과 같이 메세지를 입력하도록 창이 뜬다.

  

여기에 임시저장 상태 로그를 입력을 하고 등록을 하면

3) 다음과 같이 Stashes 리스트가 만들어진다


4) 적용을 원할 경우는 원하는 Stash 리스트에서 마우스 오른쪽 클릭 - Apply Stash 를 하면 된다.


커맨드에서 Git 명령어로 처리할 경우에는
최근 상태를 불러와서 현재 저장소에 적용 후 바로 Stash 를 삭제하는 명령어는 다음과 같다
 git stash pop
내용을 적용한 다음 삭제를 원하지 않을 경우에는
 git stash apply
마지막으로 모든 stash 를 삭제하고 싶을 경우에는
 git stash clear
를 하면 된다


만약 Stash 에 apply, pop 을 하는 과정에서 충돌이 생기면 일반적인 merge 상황에서 처리하는 것과 동일한 방법으로 해결해주면 된다.