feature 브랜치에서 작업을 진행하고 있는 중 다른 작업 요청이 와서 다른 브랜치로 checkout을 했는데 작업했던 소스가 보이는 현상이 발생했다.
내가 원했던 것은 새로운 브랜치로 변경을 하게 되면 기존 작업했던 소스 변경 및 새로 추가된 파일이 보이지 않는 것이였다. 이를 해결하기 위한 방법으로는 작업했던 소스들을 local repository에 커밋한 후 브랜치 변경을 하면 작업했던 소스들이 보이지 않게 할 수 있다. 하지만 완성되지 않은 코드를 커밋하는 것은 안 좋은 방법이기 때문에 이 방법은 그닥 추천하지 않는다.
이런 경우 Git에서는 어떠한 방법으로 가이드 하고 있는지 찾아보니 stash 라는 기능이 있다는 것을 알게 되었고, 다음과 같은 작업 절차를 이용하면 내가 원하는 상태에서 개발을 진행할 수 있다.
현재 working directory의 상태는 다음과 같다.
tw1111.txt 파일은 stage 영역에서 관리되어 있고, tw2222.txt, tw3333.txt 파일은 새로 추가된 파일이다.
1.
위와 같은 상태에서 다음의 명령어를 실행한다. ( -u 옵션은 Untracked files도 함께 stack 영역에 저장해 둔다. )
git stash -u
2.
다른 브랜치로 이동하여 작업 요청에 따른 개발을 완료한다.
3.
원래 작업을 진행했던 브랜치로 이동한다.
4.
다음의 명령어를 실행한다. stack 영역에 저장되어 있었던 작업 내용이 복원된다.
git stash apply
이와 같이 stash 기능을 이용하면 브랜치 이동 간에 commit 되지 않은 상태의 파일을 임시적인 저장 공간에 백업할 수 있다.
stash 명령어
git stash list : 백업한 리스트 노출
git stash clear : 백업 리스트 모두 지우기
git stash apply : 최근 stack 영역에 저장되어 있던 작업 내용 복원
git stash stash@{0} : stash list 명령어를 이용하여 출력된 리스트에서 선택적 복원 (빨간색 부분이 식별자)
git stash save -u "saveTest" : stack 영역에 작업 중인 소스 저장 시 이름 지정
'개발툴' 카테고리의 다른 글
The import org.springframework.beans.factory.annotation.Autowired is never used 경고문 해결 방법 (0) | 2015.03.06 |
---|---|
maven build 시 properties 값 변경 방법 (0) | 2015.03.04 |
PyCharm 설정 (0) | 2015.01.19 |
이클립스 indigo m2eclipse-wtp 사용시 maven scope 인식 불가 현상 (0) | 2014.11.13 |
javascript 빨간 X표시 안보이게 하기 (2) | 2014.07.16 |
Shared workspace plugin 설정 (0) | 2014.07.01 |
이클립스 Open Resource 창에서 특정 파일 및 폴더 제외 방법 (473) | 2014.06.27 |
maven 빌드 시 war 파일에 buildNumber 추가 (0) | 2014.06.26 |