앞의 예처럼 특정 스태시를 선택해서 현재 브랜치의 워킹 디렉터리로 복원할 수 있습니다. 특정 스택의 번호를 명시하지 않는다면 스택 특징에 따라 가장 최신 스태시로 복원합니다.
스태시 번호를 이용해서 복원해 보겠습니다. 0번 스태시로 복원할 것입니다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (feature)
$ git stash apply stash@{0} 0번 스태시로 복원
On branch feature
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")
선택한 스택을 읽어 와 현재 브랜치의 워킹 디렉터리로 복원했습니다. 다시 스태시 목록을 확인해 봅시다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (feature)
$ git stash list
stash@{0}: WIP on test: a43043e new feature start 스택 목록이 남아 있음
스태시를 복원한 후에도 아직 스택 목록은 남아 있습니다. 이처럼 apply 명령어는 스택을 복원한 후에도 자동으로 삭제되지 않고 스택 목록에 남아 있습니다. 이러한 특징을 이용하여 여러 브랜치의 워킹 디렉터리로 스태시의 임시 작업 내용을 복사할 수 있습니다. 이는 스태시를 이용한 Ctrl+C와 Ctrl+V라고 생각하면 됩니다.