본문 바로가기

직접 만든 소프트웨어, 두 가지 개발 기록

구현 구조와 적용 범위, 확인한 기능과 남은 한계를 함께 기록합니다.

소프트웨어개발

git stash 후 새 파일이 남을 때: 미추적 파일과 무시 파일 구분

by 아빠띠띠뽀 2026. 10. 24.

작업 파일과 저장된 변경 상태를 비교하는 개발자의 개념 그림
직접 생성한 개념 이미지입니다. 실제 서비스 화면이나 구축·성능 시험 결과가 아닙니다.

git stash 뒤에 새 파일이 남는다면 먼저 미추적 파일인지, 무시된 파일인지 구분하세요. 기본 보관 범위에 새 파일이 모두 포함된다고 가정하면 작업을 잃을 수 있습니다.

적용 환경: Git CLI; git --version과 설치된 git stash 도움말 확인. 공식 문서 확인일: 2026-10-23. 아래 내용은 문서 기반 점검 가이드이며 운영 환경에서 실행한 시험 결과가 아닙니다.

1. 원인: 파일 상태마다 포함 범위가 다릅니다

파일 상태 보관 옵션을 볼 때
추적 중인 변경 기본 stash 범위 확인
미추적 파일 -u 포함 여부 확인
무시된 파일 -u만으로 포함되지 않음

status의 짧은 형식에서 ??는 미추적, --ignored로 표시한 !!는 무시된 경로입니다. 표시 범위를 좁혀 놓았다면 파일이 안 보일 수 있으므로 저장소 루트와 명령 옵션도 확인합니다.

2. 해결 순서: 상태를 읽고 보관 범위를 정합니다

git --version
git status --short --untracked-files=all
git status --short --ignored
git stash list

위 명령은 조회용입니다. 중요한 파일은 승인된 별도 위치에 먼저 보존하세요. 아래 명령은 작업 트리를 바꾸므로 실제 저장소와 보관할 파일을 확인한 뒤에만 실행합니다.

git stash push -u -m "before-task-switch"

-u는 미추적 파일까지 보관합니다. -a는 무시된 파일도 포함하므로 비밀 설정·대용량 산출물을 무심코 넣지 않도록 주의합니다. 이 글은 -a의 일괄 실행을 권하지 않습니다.

3. 확인: 이름만 보지 말고 내용을 대조합니다

git stash list
git stash show --include-untracked --stat 'stash@{0}'
git status --short --untracked-files=all

설치 버전이 해당 show 옵션을 지원하는지 도움말을 확인합니다. 방금 만든 항목인지 메시지와 목록을 대조하고, 기대한 파일이 포함됐는지 확인합니다. 복원 시에는 현재 변경을 먼저 보존한 뒤 apply를 검토합니다. apply는 보관 항목을 남기지만 충돌 없이 복원된다는 보장은 없습니다.

4. 주의와 FAQ

stash는 원격 백업인가요? 일반적인 stash 사용을 원격 백업으로 간주하면 안 됩니다. 중요한 작업의 별도 보존 계획이 필요합니다.

pop 실패 후 다시 실행하면 되나요? 충돌 상태부터 확인합니다. 무작정 재실행하거나 clear/drop으로 정리하지 마세요.

서브모듈까지 한 번에 보관되나요? 별도 저장소 경계를 확인해야 합니다. 이 글은 일반적인 단일 저장소의 파일 분류를 다룹니다.

공식 출처와 이어 읽기

stash 옵션과 복원

파일 상태 표시

Git detached HEAD에서 커밋 보존