코딩마을방범대
Git stash란 본문
728x90
Git stash
- 변경사항을 일시적으로 저장하는 기능
- 아직 커밋하기엔 이른 경우나 다른 브랜치로 체크아웃할 때 변경사항을 유지하고 싶을 때 사용
Stash 관련 명령어
1. 변경 사항 스태시하기
git stash
git statsh save
#예시
git stash save "작업 중인 기능 개발 중"
2. 스태시 목록 확인하기
git stash list
3. 스태시 복원하기
스택에 쌓인 가장 최근의 변경 사항을 불러와 작업 디렉토리에 적용한다.
이 때, 스택에서 해당 변경 사항은 제거된다.
git stash pop
git stash pop {index 번호}
4. 특정 스태시 복원하기
작업 디렉토리에 적용한 후에도 스태시에 저장되어 있는 상태를 유지한다.
이에 대해 추가 작업을 수행하려면 다시 git stash 명령어를 실행해야 한다.
* stash@{0}은 가장 최근의 스태시를 의미한다.
git stash apply
git stash apply stash@{0}
관련 오류
작업 사항이 남아있는 경우 아래와 같은 오류 메시지를 받을 수 있다.
체리픽 시 작업 사항이 남아있어서 명령어 실행이 불가능한 상황이였다.
error: your local changes would be overwritten by cherry-pick.
hint: commit your changes or stash them to proceed.
fatal: cherry-pick failed
위 오류는 현재 작업 중인 변경 사항이 Cherry-pick을 수행할 때 덮어쓰여질 수 있다는 경고이다.
아래와 같은 방법을 사용하여 정상적으로 명령을 수행할 수 있다.
해결 방법
아래 세 가지 중 선택하여 실행하면 된다.
1. 변경 사항 커밋하기
git add .
git commit -m "작업 중인 변경 사항 저장"
2. 변경 사항 스태시하기
커밋하지 않고 변경 사항을 임시로 저장(stash)하고 체리픽을 수행한 다음 스태시를 복원(stash pop)한다.
git stash
git cherry-pick 커밋ID
git stash pop
3. 변경 사항 삭제하기
git checkout -- .
참고사이트
728x90
'🎃 기타 > Git' 카테고리의 다른 글
Git 권한 오류 시 ssh 등록 방법 (0) | 2025.01.21 |
---|---|
Git 커밋 리셋 방법 (0) | 2024.01.09 |
이전 커밋 수정하기 & 이전 커밋 삭제하기 (0) | 2023.11.09 |
Git의 merge와 rebase의 차이 (0) | 2023.08.23 |
Intellij IDEA에서 Git 특정 커밋만 가져오기 (0) | 2023.08.23 |