[Git] Commands Summary - stash
Commands Summary - stash
StashName
의 form: stash@{<revision>}
ex) stash@{0}
, stash@{1}
…
최신(latest) stash item 의 이름은 stash@{0}
이다.
list
$ git stash list
Options
-p
(--patch
): stash stack의 상세 내용 확인
show
- Stash 내용 확인
$ git stash show ${StashName}
Options
-p
(--patch
): 해당 stash 상세 내용 확인
push
- Stash 저장 (Working directory, Staging area 정보 임시 저장)
(Stash stack에 작업내용 push)
$ git stash push
- push 를 생략가능
$ git stash
Options
-m
(--message
): stash meesage-k
(—-keep-index
): 현재 staging area 상태는 stash stack 에 저장안하고 keep-u
(--include-untracked
): Untracked 파일도 stash에 추가-p
(--patch
): Stash 저장시 대화형으로 hunk 단위 선택저장
(해당 옵션 사용시--keep-index
가 기본적용되며--no-keep-index
로 override 가능)
apply
- 최신(0번째 인덱스) stash item을 working directory 로 적용
$ git stash apply
- 지정한 특정 stash item(
${StashName}
)를 working directory 로 적용
$ git stash apply ${StashName}
Options
--index
: stash 의 staging area 상태도 복구
pop
Note
Conflict로 인해 해당 명령어가 실패할 수 있다.
이 경우 stash item은 stash stack에서 제거되지 않으므로
충돌을 수동으로 해결하고 나중에 수동으로 git stash drop
이 필요
- 최신(0번째 인덱스) stash item을 working directory로 적용 및 해당 stash drop
$ git stash pop
- 지정한 특정 stash item(
${StashName}
)를 working directory 로 적용 및 해당 stash drop
$ git stash pop ${StashName}
Options
--index
: stash 의 staging area 상태도 복구
drop
- 최신(0번째 인덱스) stash Item 제거
$ git stash drop
- 특정 stash item 제거
$ git stash drop ${StashName}
clear
- Stash stack item 모두 제거
$ git stash clear
branch
- Branch를 새로 만들고 checkout 이후, 해당 branch에 최신(0번째 인덱스) stash item 적용 및 drop
$ git stash branch ${BranchName}
About Conflict
apply 또는 pop 명령어로 stash item 을 적용할 때,
working directory와 conflict 발생시, 해당 명령어는 abort 된다.(명령어 자동 취소)
이에 반해, Staging area와 conflict 발생시에는 conflict가 발생한 파일이 Auto-merging 이 되어
해당 파일을 수동으로 수정 후 commit 해주어야한다.
Note
위에서도 언급했지만, git stash pop
의 경우에는 conflict 발생시, drop이 자동으로 되지 않는다.(apply 형태로 적용)
따라서 해당 stash 를 수동으로 drop 해주어야 한다.
Leave a comment