티스토리 뷰

Git Stash(스태시) 변경 사항을 나만의 공간에 임시 저장

 

아직 숙년되지 않은 상태에서 형상관리 툴(Git, SVN, CVS)을 사용하여 협업을 할 때 가장 많이 받는 스트레스는 아마도

내가 다른 사람의 소스의 잘 못 수정 하거나
내가 다른 사람이 작업해 놓은 소스를 지우면 어떻하지?
충돌(Conflict) 발생을 어떻게 해결해야 되는거지?

가 아닐까 싶다.. 나도 그랬으니까

 

물론 오늘 얘기할 스태시가 그 모든 문제를 해결 할 수는 없지만

최소한 "내가 작업한 소스를 안전하게 보관하고 필요에 따라 꺼내 쓸 수 있다"라는 장점이 있다

어찌보면 "내 소스를 보호하는 가장 안정적인 방법"이 아닐까 생각된다.

 

Stash를 설명할때

"커밋하지 않은 변경 사항을 서랍 속에 넣어두기" 라는 표현으로 설명하는 경우도 있고,

"임시저장 하기" 또는 "현재 상태 저장하기"등으로 표현하고 있는데 그 이유는 아래 설명으로~


Stash는 스테이지(Stage)에 한번이라도 올린 상태의 파일들만 들어갑니다

(스테이지에 올라간 파일이 없으므로 Stash 버튼이 활성화 되어 있지 않음)


테스트를 위해

1번 입력 후 커밋

2번 입력 후 커밋

3번 입력 후 커밋

 

총 세 번의 커밋 실행 (커밋 후 변경 사항이 없어 Stash 버튼이 비활성화 상태)  

소스


"4번 스테이시..." 라인을 추가

 

"Stash" 버튼 활성화 됨 

 Unstage - 수정된 파일

 

"Stash" 버튼 클릭 후 스태시명 "스테이시1번" 입력 후 OK 버튼 클릭 - 아래 옵션은 체크하지 않음

(□ Keep stages changes : 스테이지에 있는 변경사항 유지)

 

"OK" 버튼 클릭과 동시에

 

Unstaged files에 있던 파일이 자동 사항이 사라짐 (스태이시로 자동 이관 됨)  

 

소스 변화 - 최종 입력 했던 "4번 스테시를 위한 내용 추가..." 라인이 사라짐 확인

 

 

조금 전 생성한 스태시 "스테이시1번"을 확인 결과

변경 된 내용이 그대로.. 


 

나만의 공간에 있던 소스를 다시 꺼내 쓰기 

 

1. "Apply Stash.." 클릭  

 

2. "확인" 클릭

(아래 옵션 Delete after applying은 스태시 적용 후 삭제하려면 체크 하시면 됩니다)

 

 

3. 스태시에 저장된 변경 사항이 다시 작업 공간으로~ 

 

4. 소스 확인 

 

 

반응형
댓글
반응형
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday