변경 사항 Stash 하기
이제 작업 공간이 설정되었으니, 몇 가지 변경 사항을 만들고 이를 stash 하는 방법을 배워보겠습니다.
먼저, README.md 파일을 수정해 보겠습니다:
echo "This is a work in progress" >> README.md
이 명령은 README.md 파일에 새 줄을 추가합니다. 또한 새 파일도 생성해 보겠습니다:
echo "Some important notes" > notes.txt
이제 git status를 실행하면, 수정된 파일과 추적되지 않은 파일이 모두 있음을 확인할 수 있습니다:
git status
README.md 가 수정되었고 notes.txt 가 추적되지 않음으로 표시되는 출력을 보게 될 것입니다.
이 시점에서 다른 작업으로 빠르게 전환해야 하지만, 이러한 변경 사항을 커밋할 준비가 되지 않았다고 가정해 봅시다. 이럴 때 git stash가 유용합니다!
변경 사항을 stash 하려면 다음을 실행하십시오:
git stash
다음과 유사한 출력을 보게 될 것입니다:
Saved working directory and index state WIP on master: 1234567 Initial commit
이제 git status를 다시 실행하면 흥미로운 점을 볼 수 있습니다:
git status
README.md 가 더 이상 수정된 것으로 표시되지 않지만, notes.txt 는 여전히 추적되지 않은 파일로 나열되어 있습니다. 이는 git stash에 대한 중요한 점입니다:
중요: 기본적으로 git stash는 다음만 stash 합니다:
- 추적된 파일 (Git 이 이미 추적하고 있는 파일) 에 대한 변경 사항
- 스테이징된 변경 사항
추적되지 않은 파일 (예: notes.txt) 은 기본적으로 stash 에 포함되지 않습니다. 이 동작은 Git 이 저장소에 포함하고 싶지 않을 수 있는 새 파일을 실수로 숨기지 않도록 보장합니다.
추적되지 않은 파일을 stash 에 포함하려면 -u (또는 --include-untracked) 옵션을 사용할 수 있습니다:
git stash -u
이 명령을 실행하면 README.md 에 대한 변경 사항과 새 notes.txt 파일이 모두 stash 됩니다.
stash 에 무엇이 있는지 확인하려면 다음을 사용할 수 있습니다:
git stash list
-u 옵션을 사용했는지 여부에 따라 하나 또는 두 개의 stash 항목을 보게 될 것입니다.
stash 목록 보기를 종료하려면 q를 누르십시오.
기억하세요, stashing 은 빠른 컨텍스트 전환에 완벽합니다. 그러나 장기적인 워크플로우에서 커밋을 대체하는 것은 아닙니다. Stash 는 임시 저장소로 사용됩니다.