개요
개발을 하다보면 요청으로 인해 현재 작업하던 내용과는 별개의 내용을 확인해야할 때가 있다.
이런 상황은 빈번하게 발생할 수 있는데, 이 때마다 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 teststash@{0}: On main: test <<
stash@{1}: WIP on main: 7b2a27f first commit2. list (리스트 보기)
git stash list저장된 stash 목록을 확인할 수 있다.
3. apply (불러오기)
git stash apply저장된 stash 된 작업을 불러와서 워킹 디렉토리로 가져온다.
기본적으로 stash stack의 0번째 stash 를 불러오지만, 사용자가 지정하여 다른 index 의 stash 를 불러올 수 있다.
예를 들어 stash 의 목록은 다음과 같다.
git stash liststash@{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 dropstash 보관소에서 stash 를 제거하는 명령어이다.apply 명령어와 유사하게 별도의 index 를 주지 않으면 가장 최근의 index 를 제거한다.
특정 index 를 제거하기 위해서는 명령어에 index 를 지정하면 된다.
git stash drop 1Dropped 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 |