Android
2012.10.22 16:22

[GIT] git stash 사용하기

조회 수 24475 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
149 LINUX ls 명령어 옵션 1 file 2012.11.27 10535 0
148 개념 스트리밍 개요 Streaming overview 2012.11.26 10335 0
147 개념 AAC, MPEG Advanced Audio Coding file 2012.11.22 11239 0
146 개념 AC3, Dolby Digital file 2012.11.14 10357 0
145 개념 DTS(Digital Theater System) 2012.11.14 9988 0
144 C# 컬렉션(Collection) - ArrayList / HashTable / Queue / Stack 2012.11.12 12062 0
» Android [GIT] git stash 사용하기 2012.10.22 24475 0
142 일반 Beyond Compare로 patch 파일 만들기, 적용하기 file 2012.10.22 11050 0
141 LINUX 패치 파일 만들기와 적용하기 (patch, diff) 2 2012.10.22 22044 0
140 C# C# 문자열 숫자형식 포맷팅 String.Format ( C# Numberic Formatting ) 2012.10.10 39611 0
139 C 정규식 테스트 사이트 2012.09.20 12456 0
138 일반 DOSKEY 명령어 사용법 2012.09.19 8716 0
137 일반 CMD 창에서 ALIAS 사용하기 2012.09.19 10071 0
136 Android 자바 call stack을 임의로 보는 방법 2012.09.05 12282 0
135 C# C# 코드에서 cmd 명령어기 날리기, 리디렉션하기 2012.09.03 20077 0
목록
Board Pagination ‹ Prev 1 ... 16 17 18 19 20 21 22 23 24 25 ... 30 Next ›
/ 30

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5