현재 작업 내용을 다시 스태시하여 임시 저장했습니다. 스태시의 스택 목록을 확인합니다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (feature)
$ git stash list 스태시 목록
stash@{0}: WIP on feature: a43043e new feature start
스태시 내용이 하나 있는 것을 확인할 수 있습니다. 스태시 스택에 있는 내용을 새로운 test 브랜치를 생성해서 적용해 보겠습니다.
stash 명령어와 branch 명령어를 같이 사용합니다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (feature)
$ git stash branch test 스태시를 브랜치에 적용
Switched to a new branch 'test'
On branch test
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: stash.htm
no changes added to commit (use "git add" and/or "git commit -a")
Dropped refs/stash@{0} (9eb2b13f462d76dd8ffa30f6695c042932bece79)
새로운 브랜치 생성과 동시에 스태시의 임시 작업 내용을 복원했습니다. 다시 스태시 명령을 실행해서 스택 목록을 확인해 봅시다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (test)
$ git stash list 스태시 목록
정상적으로 스태시 복원이 적용되면 저장된 스택은 자동으로 삭제합니다.
스태시는 로컬 저장소에서 브랜치 간 저장과 스태시를 복원할 때 충돌이 발생하는 상황 외에, 원격 저장소와 연결하여 작업할 때 충돌이 발생하는 상황에도 사용할 수 있습니다. 예를 들어 원격 저장소에서 풀(pull) 작업을 하면 로컬 저장소는 갱신됩니다. 이때 스태시를 복구하면 원격 저장소 내용과 스태시 작업 내용이 충돌할 수 있습니다.