Git stash는 커밋할 준비가 되지 않은 변경 사항을 임시로 저장할 수 있는 Git의 기능입니다. 이는 현재 변경 사항을 커밋하지 않고 다른 브랜치로 전환하거나 다른 기능에 대해 작업해야 할 때 유용할 수 있습니다. 변경 사항을 보관하면 불필요한 커밋 생성을 방지하고 Git 기록을 깨끗하게 유지할 수 있습니다.
변경 사항을 숨기려면 다음 명령을 사용하십시오.
git stash save
이것은 현재 변경 사항을 저장하고 작업 디렉토리를 마지막 커밋으로 되돌립니다. 이제 다른 브랜치로 전환하거나 다른 기능에서 작업할 수 있습니다.
숨겨진 변경 사항을 적용하려면 다음 명령을 사용하십시오.
git stash apply
이렇게 하면 숨긴 변경 사항이 적용되고 변경 사항을 숨긴 시점의 상태로 작업 디렉토리가 복원됩니다.
또한 git stash list
명령을 사용하여 만든 숨김 목록을 볼 수 있고 git stash drop
명령을 사용하여 숨김을 삭제할 수 있습니다.
기능 브랜치에서 작업 중이고 즉각적인 주의가 필요한 중요한 버그 보고서를 받았다고 가정해 보겠습니다. 아직 완료되지 않았기 때문에 현재 변경 사항을 기능 브랜치에 커밋하고 싶지 않지만 버그 작업을 위해 기본 브랜치로 전환해야 합니다.
변경 사항을 숨기려면 다음 명령을 사용하십시오.
git stash save "Work in progress"
이것은 변경 사항을 저장하고 작업 디렉토리를 마지막 커밋으로 되돌립니다. 이제 메인 브랜치로 전환하고 버그에 대해 작업할 수 있습니다.
버그를 수정한 후에는 기능 브랜치로 다시 전환하고 다음 명령을 사용하여 숨겨진 변경 사항을 적용할 수 있습니다.
git stash apply
이렇게 하면 숨긴 변경 사항이 적용되고 변경 사항을 숨긴 시점의 상태로 작업 디렉토리가 복원됩니다.
- Stash된 변경 사항은 커밋할 준비가 되지 않은 변경 사항을 일시적으로 저장하는 데 유용할 수 있지만 적절한 버전 제어 방법을 대신할 수는 없습니다.
- Git Stash에 너무 많이 의존하면 변경 사항을 추적하기 어렵고 혼란이 생길 수 있습니다.
- 충돌이 있는 변경 사항을 저장하면 나중에 변경 사항을 적용할 때 문제가 발생할 수 있습니다.