Git에서 git stash 명령어는 현재 변경 사항을 임시 저장하고, 작업 디렉토리를 깨끗한 상태로 되돌리는 기능입니다.
이는 아직 완료되지 않은 작업을 저장하고, 다른 작업을 먼저 해야 할 때 유용합니다.
# 현재 변경 사항을 stash에 저장
git stash
Stash에 저장된 변경 사항은 언제든 다시 적용할 수 있습니다.
# 저장된 stash를 다시 적용
git stash pop
하지만 git stash pop을 실행하면 충돌(conflict)이 발생할 수 있습니다.
이 글에서는 Git Stash 사용 중 발생하는 충돌을 해결하는 방법을 알아보겠습니다.
git stash pop vs git stash applygit stash popgit stash pop
git stash applygit stash apply
✅ 안전한 방식: 먼저 git stash apply를 사용하여 충돌이 있는지 확인한 후, 문제가 없으면 git stash drop으로 삭제하는 것이 좋습니다.
git stash apply
# 충돌 없으면
git stash drop
git stash pop 후 충돌 해결 방법git stash pop 실행 후 충돌 발생 확인git stash pop
만약 충돌이 발생하면 Git에서 아래와 같은 메시지를 출력합니다.
CONFLICT (content): Merge conflict in file.txt
이럴 때 git status를 사용하여 충돌이 난 파일을 확인합니다.
git status
<<<<<<< HEAD 부분을 찾아 수정합니다.<<<<<<<, =======, >>>>>>>)를 제거하고 원하는 코드로 정리합니다.git add .
git commit -m "Resolve stash conflict"
만약 충돌이 너무 많거나 stash pop이 잘못 적용되었다면 다음 방법을 사용할 수 있습니다.
git reset --hard HEAD
이 명령어를 실행하면 현재 변경사항이 모두 삭제되고, 마지막 커밋 상태로 되돌아갑니다. (주의해서 사용하세요!)
| 명령어 | 설명 |
|---|---|
git stash | 변경 사항을 임시 저장 |
git stash pop | Stash 적용 + 삭제 (충돌 시 복구 어려움) |
git stash apply | Stash 적용 (삭제 X, 충돌 시 복구 가능) |
git stash drop | 적용된 stash를 삭제 |
git reset --hard HEAD | 현재 변경 사항을 모두 삭제 후 마지막 커밋으로 되돌리기 |
git stash apply를 먼저 사용하여 충돌이 있는지 확인git stash drop으로 stash 삭제git status를 확인하고 직접 해결🔥 Stash를 사용할 때는 apply를 먼저 시도하는 것이 가장 안전합니다!