강의/Git & Github 실무 활용 완벽 가이드

Git Stash: 변경 사항 임시 저장과 복원

studylida 2025. 2. 5. 15:00

Git Stash: 변경 사항 임시 저장과 복원

1. Git Stash 개요

git stash커밋하지 않은 변경 사항을 임시로 저장하고 워킹 디렉토리를 초기 상태로 되돌리는 기능입니다.
이를 통해 브랜치를 자유롭게 이동하면서도 변경 사항을 보관할 수 있습니다.

📌 Git Stash가 필요한 상황

  • 변경 사항을 커밋하지 않고 다른 브랜치로 이동해야 할 때
  • 작업을 중단하고 나중에 다시 이어서 해야 할 때
  • 불필요한 커밋 없이 변경 사항을 임시 저장하고 복원하고 싶을 때

2. 기본 명령어: git stashgit stash pop

🔹 변경 사항 임시 저장

git stash
  • 스테이징 여부와 관계없이 변경 사항을 임시 저장
  • 워킹 디렉토리는 커밋된 상태로 초기화

🔹 저장된 변경 사항 복원

git stash pop
  • 가장 최근에 저장한 변경 사항을 현재 브랜치에 적용 후 삭제

📌 git stash로 저장한 변경 사항은 이후 git stash pop을 실행할 때까지 유지됩니다.


3. Stash 적용 방법: git stash pop vs git stash apply

명령어 설명
git stash pop 스태시 적용 후 해당 항목을 삭제
git stash apply 스태시 적용 후 삭제하지 않음

🔹 git stash apply 예시

git stash apply stash@{2}  # 특정 스태시 적용

📌 동일한 변경 사항을 여러 브랜치에서 재사용할 경우 apply를 사용


4. 여러 개의 Git Stash 관리

🔹 저장된 Stash 목록 확인

git stash list

출력 예시:

stash@{0}: WIP on main: abc123 modified index.html
stash@{1}: WIP on feature: def456 updated styles.css

🔹 특정 Stash 적용

git stash apply stash@{1}

🔹 특정 Stash 삭제

git stash drop stash@{1}

🔹 모든 Stash 삭제

git stash clear

📌 clear 명령을 실행하면 모든 Stash가 영구 삭제되므로 주의


5. Git Stash 실습

연습 링크

🎯 1. 변경 사항을 Stash에 저장

echo "New content" >> file.txt
git stash
git stash list  # 저장 확인

🎯 2. Stash한 상태에서 브랜치 이동

git switch main  # 브랜치 이동

🎯 3. 저장된 변경 사항 복원

git switch feature
git stash pop  # 최근 스태시 적용 후 삭제

🎯 4. 특정 Stash 선택적으로 복원

git stash apply stash@{1}  # 특정 Stash 적용
git stash drop stash@{1}  # 적용 후 삭제

6. Git Stash 요약

명령어 설명
git stash 변경 사항을 임시 저장
git stash pop 가장 최근 Stash 적용 후 삭제
git stash apply 가장 최근 Stash 적용 (삭제 안 함)
git stash list 저장된 Stash 목록 확인
git stash drop stash@{n} 특정 Stash 삭제
git stash clear 모든 Stash 삭제