Android
2012.10.22 16:22

[GIT] git stash 사용하기

조회 수 31584 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print

git stash

 

 

git stash는 워킹 디렉토리에 unstaged 파일들을 백업하고 워킹디렉토리를 깨끗한 상태 즉 HEAD의 상태로 만드는 것입니다.

unstaged 상태인 변경사항을 일시적으로 백업하고 워킹디렉토리를 깨끗한 상태로 유지합니다.

unstaged 변경사항이 있는 경우 git stash 명령어를 실행하면 현재의 변경사항이 저장되고 워킹디렉토리는 HEAD 상태로 돌아가게 됩니다.(여기서 untracked 내역들은 stash로 백업되지 않습니다.) git stash는 사실 git stash save와 같은 명령어입니다. 이제 워킹디렉토리가 깨끗해졌으므로 원래 하려던 rebase나 pull같은 작업을 정상적으로 할 수 있습니다.
git stash로 저장한 내역은 git stash list로 조회해 볼 수 있고 git stash show stash이름을 사용하면 특정 stash의 자세한 내용을 볼 수 있습니다. 워킹 디렉토리에 stash를 다시 적용하려면 git stash pop을 사용합니다. 이 명령어는 stash에 저장한 내용을 워킹디렉토리에 적용하고 stash 내역에서 이를 제거합니다. 제거하지 않고 적용만 하려면 git stash apply를 사용합니다. git stash에 대한 더 자세한 사용법과 옵션은 레퍼런스 문서 를 참고하면 됩니다.

 



[시나리오]
branch에서 새로운 기능을 개발 중인데 긴급한 수정사항이 생겼을 경우.

방법 1. 현재까지 작업한 파일들을 어딘가에 백업해두고 branch를 롤백한다. 그리고 긴급한 수정 사항을 처리한 후 백업해둔 파일들을 다시 가져와서 개발을 진행.

방법 2. 다른 디렉토리에서 현재 배포 버전을 받은 뒤 수정 사항을 처리하고 배포.

이 외에도 몇몇 꼼수가 있겠지만 git stash를 사용하면 간단히 해결할 수 있다.

#현재 작업을 저장해두고 branch를 head로 돌린다.(git reset --hard)
git stash save

#저장되어 있는 stash들 보기
git stash list

#stash를 꺼내와서 적용
#stash들은 stack에 저장된다. 따라서 가장 최근에 save한 stash가 현재 branch에 적용된다.
git stash pop

#git stash pop 과 비슷한 명령어지만 stash list에서 삭제하지 않는다는 점이 다르다.
git stash apply

#필요 없는 stash를 삭제
git stash drop

#전체 stash list를 삭제
git stash clear

git stash pop 을 했는데 conflict가 발생한 경우.
stash list 에서는 그대로 남아 있으므로 수동으로 drop 을 해줘야 한다. 왜 list 에서 삭제하지 않고 남겨두는걸까 생각해보면 남겨두는게 맞다. 문제가 생겼을 때 문제를 처리하고 다시 git stash pop을 할 수 있다.

Dreamy의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
176 LINUX 내 .bashrc 설정 secret 2015.08.31 0 0
175 일반 VP9 코덱 2015.09.01 7886 0
174 C# TreeView의 rootnode(TreeNode)에서 하위 항목 찾기 2015.09.21 15317 0
173 C# ArrayList를 string[] 배열로 변환하는 방법 2015.09.23 13306 0
172 PHP 파일 데이터 저장하고 불러오기(파일 입출력) 2015.09.30 8946 0
171 LINUX 커맨드라인에서 url 접근 - wget 사용법 2015.09.30 12403 0
170 LINUX 리눅스 부팅시 명령스크립트 실행하기 2015.09.30 10753 0
169 LINUX 리눅스 시스템 시작시에 자동 실행할 파일 등록하기 2015.09.30 10481 0
168 Pi ftp 설정하기 2015.10.01 7570 0
167 Pi 무선랜 wifi 설정 2015.10.01 7300 0
166 Pi ftp 포트 변경하기 2015.10.01 10295 0
165 C# List<T> 사용법 2015.10.13 49307 0
164 JAVA 현재시간 구하기 2015.10.21 8259 0
163 JAVA 텍스트 파일 읽기, 쓰기 2015.10.21 13360 0
162 일반 Html에서 사용하는 contentType의 종류 2015.10.27 9574 0
목록
Board Pagination ‹ Prev 1 ... 18 19 20 21 22 23 24 25 26 27 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5