[Git] Stash

Sangwoo Park·2021년 12월 26일
0

Git

목록 보기
1/3
post-thumbnail
post-custom-banner

0. 개요

git stash는 임시 저장소에 현재까지의 작업 변경 내역을 저장하는 기능이다.

staged상태인 내용과 tracked상태인(staged되지않은) 내용들을 모두 저장한다.

체크아웃된 브랜치와 상관없이 사용 가능하다.

때문에 잘못된 브랜치에서 작업하고 있었을때 사용하기 좋다.
(ex. 임시저장 -> 제대로 된 브랜치로 체크아웃 -> 꺼내오기)

untracked상태인 내용들은 -u 옵션을 적용해주지 않으면 추가로 저장하지 않는다.
(ex. 새로 추가된 파일)

필자가 자주 쓰는 stash command

git stash
git stash pop
git stash list
git stash apply

1. 저장하기

stash 하게 되면 항상 0번째에 stash stack이 쌓이고, 이전 stack들의 index는 1씩 증가한다.

1) git stash push

  1. git stash push -m "메세지"
  2. git stash push (메세지를 입력하지 않으면 메세지 자동 생성)
  3. git stash -m "메세지"(push 생략가능)
  4. git stash (push 생략가능, 메세지 자동 생성)
  5. git stash --include-untracked
  6. git stash --all
  7. git stash -u (5, 6, 7은 새로 생성되어 untracked 상태인 이력들까지 stash)

2) git stash save (Deprecated since git 2.15.x/2.16)

  1. git stash save -m "메세지"
  2. git stash save "메세지" (-m 생략가능)
  3. git stash save (메세지를 입력하지 않으면 메세지 자동 생성)

2. 꺼내오기

apply: stack에 변화가 없다.
pop: 스택에서 해당 stash를 꺼내옴과 동시에 삭제한다.

1) git stash apply

  1. git stash apply stash@{N}
  2. git stash apply N (stash@{} 생략 가능)
  3. git stash apply (N번째 스택 지정하지 않으면 0번째 스택(최신스택)을 가져온다)

2) git stash pop

  1. git stash pop stash@{N}
  2. git stash pop N (stash@{} 생략 가능)
  3. git stash pop (N번째 스택 지정하지 않으면 0번째 스택(최신스택)을 가져온다)

3. 보기

현재 stash된 stack들에 대한 정보를 보는 command

1) git stash list

git stash list는 모든 stash stack list를 index, message와 함께 보여준다.

2) git stash show

git stash show는 해당 stack에 저장된 변경 내역들을 보여준다.

ex) git stash show 1 (1번째 stack의 변경사항을 보여준다)

4. 지우기

1) git stash drop

  1. git stash drop stash@{N}
  2. git stash drop N (stash@{} 생략 가능)
  3. git stash drop (N번째 스택 지정하지 않으면 0번째 스택을 버린다.)

2) git stash clear

git stash clear는 모든 stack들을 삭제한다.

profile
going up
post-custom-banner

0개의 댓글