Git

git stash

[문제 상황]

한 브랜치에서 다른 브랜치로 옮기려면 워킹 디렉토리에 흔적이 있어서 커밋을 날리고 다른 브랜치로 이동 해야 한다.

하지만 커밋 날리기에는 흔적을 남기기 싫고 그냥 다른 브랜치에 이동하고싶을때가 있다.

그러면 어떻게 해야 할까?

 

[문제 해결방법]

git stash를 명령어 통해 워킹디렉토리를 깨끗이 저장 할 수 있다. 그래서 다른 브랜치로 쉽게 이동 할 수 있다.

→ 버전관리가 되고 있는 파일들만 가능

git stash

작업 도중 커밋을 할 수는 없는 상태지만, 브랜치 전환을 하거나 커밋 변경을 해야할때 임시적으로 저장할 수 있는 명령어
  • commit되기 이전 작업 중 파일과 git add로 추가된 파일 까지 모두 stash 영역으로 저장되며 수정분량은 제거 된다
  • 단, git add 명령어로 한번이라도 index 영역에 트래킹 된 파일만 stash영역으로 저장됨
  • 새롭게 생성한 파일은 git add 후 git stash 명령어를 사용하거나 git stash -u 옵션을 같이 사용할 것
git statsh

git stash pop

git stash list

 

git stash

  • git add` 명령어로 한번이라도 index 영역에 트래킹 된 파일을 기본 명칭으로 stash 임시 영역에 저장되고, 수정 분량은 제거됨
  • 기본 명칭 WIP 로 저장됨

git stash -u

  • 새롭게 추가한 파일도 함께 stash 영역에 저장

git stash save 명칭

  • git stash 로 저장할 때 명칭을 주어 저장함

git stash list

  • stash 한 기록을 리스트형태로 확인할수 있다.
  • 명시적으로 삭제하지 않으면 남아 있음

git stash apply

  • 가장 최근에 저장한 stash를 복원 한다.

git stash apply stash아이디

  • stash아이디 는 git stash list 명령어를 실행하면 리스트 앞에 stash@{0} 이렇게 개별적인 id 값이 있는데 이를 적용한다.
  • stash아이디 의 임시 저장이 복원된다.

git stash drop

  • 가장 최근에 저장한 stash를 삭제 한다.

git stash drop stash아이디

  • stash아이디의 리스트가 삭제된다.

git stash clear

  • stash 기록이 모두 제거된다.

git stash pop

  • stash를 복원하고 바로 제거 된다.

git stash branch

  • Stash 할 당시의 커밋을 Checkout 한 후 새로운 브랜치를 만들고 여기에 적용 후 Stash를 제거

'Git' 카테고리의 다른 글

git merge  (0) 2020.10.30
git checkout  (0) 2020.10.30
git branch  (0) 2020.10.30
git clone  (0) 2020.10.30
git pull  (0) 2020.10.30