반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- json
- IntelliJ
- vscode
- Array
- input
- 자바문법
- 테스트자동화
- Visual Studio Code
- 인텔리제이
- string
- CSS
- junit5
- list
- HashMap
- Java
- 자바
- html
- javascript
- ArrayList
- 단위테스트
- junit
- js
- Eclipse
- 문자열
- 자바스크립트
- 정규식
- java테스트
- math
- 배열
- 이클립스
Archives
- Today
- Total
어제 오늘 내일
[Git] 하던 작업을 잠시 멈춰야 할 때: git stash 완벽 정리 본문
열심히 코드를 짜고 있는데 갑자기 팀장님이 달려옵니다.
"지금 운영 서버에 치명적인 버그가 터졌어! 하던 거 멈추고 이것부터 고쳐줘!"
이때 여러분은 어떻게 하시나요?
- 에러가 나는 미완성 코드를 억지로 Commit 한다? (나중에 합칠 때 골치 아파집니다.)
- 작업하던 걸 다 지우고 다시 시작한다? (절대 안 되죠!)
이럴 때 사용하는 임시 저장소, Stash(스태시)를 소개합니다.
1. Stash란 무엇인가요?
Stash는 "안전 금고" 혹은 "임시 보관함"입니다.
현재 작업 중인 변경 사항(Staging Area + Working Directory)을 잠시 어딘가에 숨겨두고,
작업 트리를 깨끗한 상태(마지막 커밋 상태)로 되돌려줍니다.
2. 사용법 3단계: 넣고, 확인하고, 꺼내기
① 작업물 넣기 (숨기기)
작업 중이던 파일들을 임시 저장소로 보냅니다.
git stash
이렇게 하면 수정 중이던 파일들이 사라지고, 마지막 커밋 상태로 돌아갑니다. 이제 안심하고 브랜치를 이동해서 급한 버그를 수정하면 됩니다.
💡 꿀팁: 메시지와 함께 저장하기 (추천)
그냥git stash만 하면 나중에 이게 무슨 작업이었는지 까먹습니다.git stash push -m "로그인 기능 작업 중 임시저장"
② 저장 목록 확인하기
내가 넣어둔 짐들이 잘 있는지 확인합니다.
git stash list
[실제 출력 예시]
stash@{0}: On main: 로그인 기능 작업 중 임시저장
stash@{1}: On main: WIP (Work In Progress)
- stash@{0}: 가장 최근에 넣은 작업물입니다. (스택 구조)
③ 작업물 꺼내기 (복구)
급한 불을 껐으니 다시 원래 하던 일을 해야겠죠? 두 가지 방법이 있습니다.
git stash pop(추천): 짐을 꺼내오면서 보관함 목록에서는 삭제합니다. (꺼내고 비우기)git stash apply: 짐을 꺼내오되, 보관함 목록에 남겨둡니다. (복사해서 가져오기)
# 가장 최근 작업(stash@{0})을 꺼내고 목록에서 지움
git stash pop
3. 자주 묻는 질문 (FAQ)
Q. 저장했던 내용을 그냥 지우고 싶어요.
A. pop 하지 않고 삭제만 하려면 drop을 씁니다.
git stash drop
Q. 새로 만든 파일(Untracked File)은 저장이 안 돼요!
A. git add를 한 번도 하지 않은 새 파일은 기본적으로 stash 대상이 아닙니다. 이럴 땐 -u 옵션을 붙여야 합니다.
git stash -u
Q. 특정 stash만 골라서 가져오고 싶어요.
A. list에서 확인한 번호를 지정하면 됩니다.
git stash pop stash@{2}
📝 요약
git stash: 작업 중인 코드를 잠시 어딘가에 치워둔다.git stash pop: 치워둔 코드를 다시 가져오고 목록에서 지운다.- 급한 버그 수정이나 브랜치 변경 시 커밋하지 않고 이동할 때 필수적이다.
반응형
'IT > Git' 카테고리의 다른 글
| [Git] "이 코드 도대체 누가 짰어?" git blame으로 코드의 역사 추적하기 (0) | 2026.02.06 |
|---|---|
| [Git] 내 코드에 버전 도장 쾅! git tag로 배포 버전 관리하기 (0) | 2026.02.05 |
| [Git] reset --hard로 날린 코드 복구하기 (git reflog) (0) | 2026.02.04 |
| [Git] 이미 커밋한 걸 취소하고 싶다면? Reset vs Revert 완벽 정리 (0) | 2026.02.04 |
| [Git] 과거를 추적하는 법: git log로 커밋 기록 조회하고 검색하기 (0) | 2026.02.03 |
Comments
