Android
2012.10.22 16:22

[GIT] git stash 사용하기

조회 수 31329 댓글 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
번호 분류 제목 날짜 조회 수 추천 수
206 LINUX OpenGrok 설치 빨리하기 2016.04.27 10673 0
205 Pi OP AMP의 활용 2019.08.05 9944 0
204 일반 OMV (OpenMediaVault) 플러그인들 2019.02.10 8176 0
203 개념 OMA DRM에서 DCF 란? 2013.01.22 12299 0
202 Pi NPN과 PNP 트랜지스터의 차이 2019.01.03 14073 0
201 Pi NodeMCU PIN 정보 file 2017.01.09 9141 0
200 일반 NirCmd 사용법 2015.12.08 7944 0
199 일반 net use와 subst file 2012.12.18 13488 0
198 PHP MySQL 기본 문법 2014.03.01 12609 0
197 LINUX mutt Gmail 설치, 사용 / Ubuntu 18.04 환경 2019.11.25 5134 0
196 PHP move_uploaded_file() 2014.04.29 10505 0
195 LINUX Midnight Commander 간단 조작법 2014.04.07 11218 0
194 MFC MFC에서 커맨드 인자(cmd argument) 사용하기 2010.12.13 61752 0
193 MFC MFC에서 인자(argument)처리 2005.10.28 47215 0
192 MFC MFC 클래스간 포인터 얻기 2010.06.01 47074 0
목록
Board Pagination ‹ Prev 1 ... 16 17 18 19 20 21 22 23 24 25 ... 34 Next ›
/ 34

나눔글꼴 설치 안내


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

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

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5