개요
개발을 하다보면 요청으로 인해 현재 작업하던 내용과는 별개의 내용을 확인해야할 때가 있다.
이런 상황은 빈번하게 발생할 수 있는데, 이 때마다 commit
하는 것은 바람직하지 못하다.
(commit
은 하나의 개발 단위로 하는 것이 좋은데, 무분별하게 commit
을 사용하면 commit
이력으로 파악이 어려워지기 때문이다.)
이때 작업한 내용을 임시 공간
에 저장하였다가 다시 불러와서 작업을 이어나갈 수 있게 하는 것이 stash
기능이다.
명령어
1. stash
(보관)
git stash
가장 기본적인 작업 내용을 저장하는 명령어이다.stash
명령어를 사용하면 워킹 디렉토리
에서 수정한 파일들만 저장되며, 워킹 디렉토리
는 비워진다.stash
는 여러 번 할 수 있으며, stack
구조로 stash
보관소에 저장되게 된다.
stash
할 때 사용자가 stash
의 description
을 직접 입력할 수 있다.
git stash save 'description'
description
를 지정하면 stash list
에서 확인 할 수 있다.
git stash save test
stash@{0}: On main: test <<
stash@{1}: WIP on main: 7b2a27f first commit
2. list
(리스트 보기)
git stash list
저장된 stash
목록을 확인할 수 있다.
3. apply
(불러오기)
git stash apply
저장된 stash
된 작업을 불러와서 워킹 디렉토리
로 가져온다.
기본적으로 stash stack
의 0번째 stash
를 불러오지만, 사용자가 지정하여 다른 index
의 stash
를 불러올 수 있다.
예를 들어 stash
의 목록은 다음과 같다.
git stash list
stash@{0}: WIP on main: 7b2a27f first commit
stash@{1}: WIP on main: 7b2a27f first commit
stash@{2}: WIP on main: 7b2a27f first commit
이 중 1번째 index
의 stash
를 불러오고 싶은 경우 해당 index
를 지정하면 된다.
git stash apply 1
주의사항
워킹 디렉토리
에 불러오려는 stash
작업 내역과 충돌나는 부분이 있을 경우 에러가 발생하게 된다.
error: 다음 파일의 로컬 변경 사항을 병합 때문에 덮어 쓰게 됩니다:
README.md
병합하기 전에 변경 사항을 커밋하거나 스태시하십시오.
... 생략 ...
4. drop
(제거하기)
git stash drop
stash
보관소에서 stash
를 제거하는 명령어이다.apply
명령어와 유사하게 별도의 index
를 주지 않으면 가장 최근의 index
를 제거한다.
특정 index
를 제거하기 위해서는 명령어에 index
를 지정하면 된다.
git stash drop 1
Dropped refs/stash@{1} (0050785318448c374a6b7f3dadd43d9ce949fd44)
'개발 일반 > git' 카테고리의 다른 글
[GIT] remote branch 를 마지막 수정 날짜 기준으로 정렬 (0) | 2025.04.28 |
---|---|
git - git config 사용자 이름 및 사용자 이메일 설정하기 (0) | 2023.01.30 |
로컬 브랜치와 원격 브랜치 삭제하기 (0) | 2023.01.15 |
원격 브랜치 및 로컬 브랜치 이름 변경하기 (0) | 2023.01.15 |
원격 브랜치로 로컬 브랜치 생성 (0) | 2023.01.15 |