git stash

Joey Hong·2020년 7월 25일
1

git

목록 보기
1/3

현재 브랜치에서 아직 완료하지 않은 커밋이 있는데 다른 브랜치로 가야하는 경우가 있다. 커밋하기엔 애매하고 지우자니 아까운 수정사항들을 stack에 잠시 보관해두고 필요할 때 꺼내쓸 수 있다. 또한, 실수로 다른 브랜치에서 작업했던 사항들을 stack에 보관하고 원하는 브랜치로 이동해 수정사항들을 꺼내 반영할 수 있다.

git stash로 수정사항 저장하기

현재 workind directory에 있는 수정사항을 stack에 저장한다.

git stash
git stash save //같은 역할을 한다
  • 가장 최근 커밋을 기준으로 그 이후의 수정사항들을 되돌리는 역할을 한다.

  • 실행하면 working directory는 깨끗해진다.

  • staged됐는지의 여부도 저장할 수 있다.

  • 이제 다른 브랜치로 이동할 수 있다.

git stash 목록 확인하기

git stash를 여러번 한 경우 stack에 목록이 쌓이게 되며 git stash list로 확인할 수 있다.

$ git stash list
stash@{0}: WIP on [branch이름]: [커밋 번호] [커밋 이름]
stash@{1}: WIP on [branch이름]: [커밋 번호] [커밋 이름]
stash@{2}: WIP on [branch이름]: [커밋 번호] [커밋 이름]

	...

git stash한 내역 적용하기

stack에 저장해둔 수정사항들을 꺼내쓸 수 있다.

git stash apply
git stash apply stash@{번호} //원하는 번호
git stash apply --index
  • 다른 브랜치에 반영할 수 있다.

  • 원하는 stash를 불러올 수 있다.

  • --index옵션으로 staged됐는지 아닌지의 여부도 불러올 수 있다.

git stash 제거하기

stack에 쌓여있는 stash 목록은 브랜치에 apply해도 지워지지 않아 명령어를 통해 제거해줘야한다.

git stash drop //가장 최근의 stash 제거
git stash drop stash@{번호} //원하는 번호
git stash pop // apply + drop을 동시에
  • 가장 최근의 stash를 제거할 수 있다
  • git stash pop으로 apply와 drop을 동시에 할 수 있다.
profile
개발기록

1개의 댓글

comment-user-thumbnail
2020년 7월 26일

오오 stash 어떨때 쓰는건지 잘 몰랐는데 감자합니다..!

답글 달기