코딩마을방범대

Git stash란 본문

🎃 기타/Git

Git stash란

신짱구 5세 2024. 9. 27. 11:09
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 -- .

 

 

 

 


참고사이트

Git stash 란? 언제 사용할까?

 

 

 

728x90