git stash

Tool/Git 2017. 2. 6. 01:02

merge 를 하거나 branch 를 변경할 때 기존 작업물을 commit 하거나 stash 하라는 메시지를 볼 수 있다.

주로 임시적인 commit 을 행하곤 하는데, stash 라는 기능도 매우 유용하다.

요점만 말하자면 현재 수정된 tracked 파일들을 잠시 특정 공간(stack)으로 옮겨주는 역할을 한다.

그리고 나서 나중에 다시 되돌리면 끝이다.


$ git stash <- 수정된 tracked 파일을 잠시 옮김
 
$ git checkout other_branch <- 딴짓
$ git commit -m 'anything' <- 딴짓
$ git checkout ori_branch <- 딴짓
 
$ git stash apply <- 수정된 tracked 파일을 다시 가져옴
cs



재미진 기능이다.

아래의 명령으로 stash 된 리스트를 확인할 수 있다.


$ git stash list
stash@{0}: WIP on master: 049d078 added the index file
stash@{1}: WIP on master: c264051 Revert "added file_size"
stash@{2}: WIP on master: 21d80a5 added number to log
cs


특정 stash 리스트를 삭제할 수도 있다.


$ git stash drop stash@{0}
cs


apply 대신 아래의 명령을 사용하면 stash apply 후 바로 스택에서 제거하여 리스트에 남지 않는다.


$ git stash pop
cs




WRITTEN BY
손가락귀신
정신 못차리면, 벌 받는다.

,