IntelliJ IDEA를 사용하시면 복잡한 명령어 입력 없이
**GUI(Graphic User Interface)**를 통해 훨씬 쉽고 직관적으로 Stash 기능을 활용할 수 있습니다.
IntelliJ에서 Stash를 사용하고 복구하는 단계별 방법을 정리했습니다.
Git Stash란 무엇입니까?
Git Stash는 현재 작업 중인 변경 사항(Working Directory와 Staging Area에 있는 수정 내용)을
임시 저장소에 보관해두는 기능입니다.
'Stash'는 '숨기다', '감추다'라는 뜻처럼,
커밋하지 않은 채로 다른 브랜치로 이동하거나
긴급하게 다른 작업을 처리해야 할 때,
현재의 지저분한 작업 환경을 깨끗하게 정리해주는 역할을 합니다.
이 명령어를 사용하면 수정된 파일들이 모두 사라지고,
가장 최근 커밋 상태로 돌아가게 됩니다.
이후 다른 브랜치로 checkout 하는 등의 작업을 자유롭게 수행할 수 있습니다.
💡 주의: git add로 스테이징하지 않은 Untracked File은 기본적으로 Stash에 포함되지 않습니다.
Untracked File까지 포함하려면 git stash -u 또는 git stash --include-untracked 명령어를 사용해야 합니다.
--> 쉽게 말하자면 새로생성된 파일은 Stash 에 포함되지 않는다는 말입니다!
IntelliJ에서 Stash 사용하기
IntelliJ에서는 GUI를 통해 훨씬
직관적으로 Stash를 사용할 수 있습니다.
1) Commit 툴 창 열기 (Alt+9 또는 Command+9): 변경된 파일 목록을 확인합니다.

2) Stash 클릭 실행:
- 상단 메뉴에서 Git > Stash Changes... 를 선택합니다.
- Commit 툴 창 상단의 ⋮ (More Options) 또는 톱니바퀴 아이콘을 클릭하고 Stash Changes... 를 선택합니다.
3) 메시지 입력: Stash에 저장할 때 사용할 메시지를 입력하고 Stash 버튼을 클릭하시면 됩니다.


Stash 목록 확인 및 복구하기 (Pop vs. Apply)
Stash에 저장해 둔 변경 사항을 다시 현재 브랜치에 적용하는 방법입니다.
단계 1: Stashes 목록 확인

- Commit 툴 창을 열고, 상단의 탭 목록에서 Log 탭 또는 Git 툴 창 (Alt + 9 또는 ⌘ + 9)의 Stashes 섹션을 찾습니다.
- 이곳에서 저장해둔 Stash 목록과 메시지를 확인할 수 있습니다.
단계 2: 복구할 Stash 선택
- 복구하려는 Stash 항목을 마우스 오른쪽 버튼으로 클릭합니다.
- 두 가지 복구 옵션 중 하나를 선택합니다.

| 옵션 | 설명 | 결과 |
| Pop Stash... | 적용 후 Stash 목록에서 해당 항목을 제거합니다. | 일회성 복구에 사용합니다. (가장 일반적) |
| Apply Stash... | 적용만 하고 Stash 목록에 해당 항목을 남겨둡니다. | 재사용이 필요할 때 사용합니다. |
단계 3: Stash 복구 설정 및 실행
- 선택한 옵션(Pop 또는 Apply)에 따라 설정 창이 나타납니다. 대부분 기본 설정을 유지하고 Pop 또는 Apply 버튼을 클릭하여 복구를 실행합니다.
- 결과: Stash에 저장해 두었던 파일 수정 내용들이 현재 브랜치에 다시 적용됩니다.
불필요한 Stash 삭제하기 (Drop)
Apply로 적용했거나 더 이상 필요 없는 Stash는 목록에서 수동으로 삭제해야 합니다.
- Stashes 목록에서 삭제할 Stash 항목을 마우스 오른쪽 버튼으로 클릭합니다.
- Drop Stash를 선택합니다.
- 확인 창이 나타나면 Drop을 클릭하여 목록에서 완전히 제거합니다.
IntelliJ를 사용하면 이처럼 Stash 작업을 시각적으로 관리할 수 있어,
명령어를 일일이 외울 필요 없이 편리하게 버전 관리를 할 수 있습니다!
'💻 개발로그 (Tech Log) > DevTools·개발일기' 카테고리의 다른 글
| Windows + WSL로 완벽한 개발환경 구축하기 (Java/Python 설정 가이드) (0) | 2025.11.18 |
|---|---|
| 헬스체크와 서킷브레이커 패턴 적용 (2) | 2025.07.13 |
| 통합테스트에서 DB 데이터 초기화 방법 (2) | 2025.07.04 |
| API 문서 작성 도구 선택 가이드 (Swagger, Redoc 등) (0) | 2025.06.04 |
| Java와 Python 중 어떤 언어가 백엔드에 더 적합할까? (0) | 2025.05.20 |