변경 사항 stash
커밋할 준비가 되지 않은 커밋되지 않은 변경 사항이 있지만 다른 브랜치로 전환하고 싶을 때 git stash를 사용합니다. 기본적으로 git stash는 작업 디렉터리의 추적된 변경 사항과 스테이징된 변경 사항을 저장합니다.
커밋할 준비가 되지 않은 커밋되지 않은 변경 사항이 있지만 다른 브랜치로 전환하고 싶을 때 git stash를 사용합니다.
stash 항목 만들기#
기본적으로 git stash는 작업 디렉터리의 추적된 변경 사항과 스테이징된 변경 사항을 저장합니다.
옵션을 사용하여 포함할 변경 사항을 제어할 수 있습니다.
-
추적된 변경 사항을 stash하려면:
git stash -
메시지와 함께 변경 사항을 stash하려면:
git stash push -m "describe your changes here" -
변경 사항을 stash하되 스테이징된 변경 사항은 작업 디렉터리에 유지하려면:
git stash push -k-k(--keep-index) 옵션은 변경 사항을 stash하지만 작업 디렉터리에도 유지합니다. 변경 사항을 임시로 저장하지만 계속 작업하고 싶을 때 이 옵션을 사용합니다. -
변경 사항을 stash하고 추적되지 않는 파일을 포함하려면:
git stash push -u-u(--include-untracked) 옵션은 Git이 아직 추적하지 않는 파일도 stash합니다. 이 옵션 없이는 아직 커밋되지 않은 새 파일이 작업 디렉터리에 남습니다. -
스테이징된 변경 사항만 stash하려면:
git stash push -S-S(--staged) 옵션은 스테이징된 변경 사항만 stash합니다. 스테이징되지 않은 변경 사항으로 계속 작업하면서 스테이징된 변경 사항을 저장하고 싶을 때 이 옵션을 사용합니다.
stash 항목 적용#
stash한 후 많은 변경을 하면 stash를 적용할 때 충돌이 발생할 수 있습니다. 변경 사항을 적용하기 전에 이러한 충돌을 해결해야 합니다.
-
가장 최근 stash 항목을 적용하고 stash에 유지하려면:
git stash apply -
특정 stash 항목을 적용하려면:
git stash apply stash@{3} -
가장 최근 stash 항목을 적용하고 stash에서 제거하려면:
git stash pop
stash 항목 보기#
-
모든 stash 항목을 보려면:
git stash list -
더 자세한 stash 항목을 보려면:
git stash list --stat
stash 항목 삭제#
-
가장 최근 stash 항목을 삭제하려면:
git stash drop -
특정 stash 항목을 삭제하려면:
git stash drop <name> -
모든 stash 항목을 삭제하려면:
git stash clear
예시: stash 항목 만들기 및 적용#
Git stashing을 사용해 보려면:
-
Git 리포지터리에서 파일을 수정합니다.
-
수정 사항을 stash합니다:
git stash push -m "Saving changes from edit" -
stash 목록을 봅니다:
git stash list -
보류 중인 변경 사항이 없는지 확인합니다:
git status -
stash된 변경 사항을 적용하고 stash에서 항목을 제거합니다:
git stash pop -
stash 목록을 보고 항목이 제거되었는지 확인합니다:
git stash list
