7.1.6 스태시 복원으로 충돌
스태시를 복원할 때 워킹 디렉터리의 상태는 깨끗해야 합니다. 스택에 저장된 스태시 내용이 다시 워킹 디렉터리로 복구될 때, 수정된 작업 내용과 현재 워킹 디렉터리를 병합하기 때문입니다. 복구되는 브랜치의 워킹 디렉터리가 깨끗하지 않다면 병합 과정에서 충돌이 발생할 가능성이 많습니다.
특히 스태시를 복원할 때 같은 파일에서 동일한 부분을 변경했다면 즉시 충돌이 발생합니다. 스태시를 복원할 때 충돌이 생기면 직접 문제를 해결해야 합니다. 복원하는 도중 충돌이 생기면 스태시는 스택에 저장된 내용을 자동으로 삭제하지 않습니다. 직접 충돌을 해결한 후 스태시 목록을 수동으로 삭제해야 합니다. 스태시 충돌이 예상된다면 스태시용 브랜치를 하나 생성해서 작업하는 것을 추천합니다.
다음은 새로운 브랜치를 생성한 후 스태시를 적용하는 명령입니다. 스태시 스택에 저장된 내용으로 새로운 브랜치를 동시에 생성할 수 있습니다.
$ git stash branch 브랜치이름
스태시로 이전 내용을 복원한 상태입니다. 아직 커밋을 수행하지 않았기 때문에 작업 중인 내용은 수정된 상태로 워킹 디렉터리에 남아 있습니다. 실습을 위해 현재의 임시 작업 내용을 다시 스태시해 보겠습니다.
infoh@DESKTOP MINGW64 /e/gitstudy07 (feature)
$ git stash 스태시 저장
Saved working directory and index state WIP on feature: a43043e new feature start