반응형
이번 포스팅에서는 [실전 활용 및 고급 기술] 파트의 세부 주제인 미완성 작업 임시 저장하기 (Stash)에 대하여 상세히 알아보겠습니다.

1. Stash의 필요성과 원리
개발을 진행하던 중 긴급하게 운영 환경 버그를 처리해달라는 요청을 받는 경우가 흔히 발생합니다. 이 때 작업 중인 코드를 강제로 Commit하면 이력이 더러워지고, 그렇다고 브랜치를 그냥 이동(Checkout)하자니 현재 파일들의 변경 사항 때문에 이동이 거부됩니다. 이러한 난감한 상황을 해결하는 임시 클립보드가 바로 Stash입니다. 코드를 안전하게 보관함에 넣고 워킹 디렉토리를 이전 커밋 상태로 깨끗하게 비워줍니다.
2. 주요 Stash 명령어
Stash는 스택(Stack) 구조로 동작하므로 여러 개의 작업을 차곡차곡 보관할 수 있습니다.
# 1. 작업 중인 내용 임시 보관 (최근 메시지로 자동 부여)
$ git stash
# 2. 명확한 메시지를 달아서 임시 보관 (권장)
$ git stash save "결제 모듈 리팩토링 진행 중"
# 3. 보관된 항목 리스트 확인 (stash@{0}, stash@{1} 형태로 고유 번호 부여됨)
$ git stash list
# 4. 가장 최근에 보관한 내용을 복원하고 리스트에서 삭제
$ git stash pop
# 5. 복원만 하고 보관함 리스트에서는 유지
$ git stash apply stash@{1}
주의 사항: 기본적으로
git stash는 이전에git add한 번이라도 수행된 적 있는 '추적 대상(Tracked) 파일'들의 변경 사항만 저장합니다. 새로 생성하여 추적되지 않은 파일까지 보관하려면git stash -u옵션을 사용해야 합니다.
지금까지 미완성 작업 임시 저장하기 (Stash)의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.
반응형
'CI.CD > GIT' 카테고리의 다른 글
| [GIT] 특정 커밋만 선별하여 가져오기 (Cherry-pick) (0) | 2026.07.14 |
|---|---|
| [GIT] 과거 시점으로 되돌리기 (Reset & Revert) (0) | 2026.07.14 |
| [GIT] 안전하고 깔끔한 브랜치 관리 전략 (0) | 2026.07.14 |
| [GIT] Merge와 Rebase의 차이 및 선택 기준 (0) | 2026.07.14 |
| [GIT] 히스토리를 선형으로 정리하기 (Rebase) (0) | 2026.07.14 |