I_TStory/GIT

[Github 사용법 A to Z] 스태시: 로컬저장소에서 임시저장 (커밋 X)

귤치 2024. 8. 11. 16:54

git stash를 사용하여 저장하면, 스택(Stack) 으로 저장된다. 

(가장 최근 임시저장된 리스트가 상위에 쌓임 )

 

1. git stash

: 임시저장

 

로컬 저장소 목록에 변경 사항을 임시 저장

git stash

 

git stash는 새로 생성된 파일들엔 적용안된다.

새로 생성된 파일도 임시저장하고 싶다면 git add 후 git stash 진행

git add .		
git stash

 

 

2. git stash list

: 임시저장 리스트 확인

리드미 수정 => git stash => 리드미 수정 =>  git stash  => 리드미 수정 =>  git stash  

stash 총 세 번 후 git stash list로 저장 내역을 확인해보니 총 3개의 스태시 리스트가 나오는 것을 볼 수 있다.

스택형식으로 쌓인다했으니까 맨 위의 stash@{0}이 가장 최근 저장한 목록일 것임

 

3. git stash apply

: 저장된 내용 불러오기

 

스택으로 저장하기 때문에 계속 git stash를 한다면 git stash apply하는 시점에서 바로 직전에 한 git stash의 작업 내용이 불러올 것이다. 

git stash apply

블로그 작성하면서 하다보니 마지막에 리드미를 뭐라고 수정했는지 기억안나서

(마지막 커밋) 이라고 입력하고 다시 git stash 한 다음 git stash apply 했음.

git stash apply 했더니 가장 최근에 저장했던 내역이 뿅 하고 튀어나옴 

 

직접 실습해보면 알겠지만 

리드미 파일에 (마지막 커밋) 이라고 입력 하고 git stash 하면 수정내역이 없어짐. ( 마지막 커밋 이라는 텍스트가 없어짐)

git stash apply(불러오기) 하면 마지막 커밋 이라고 입력했던 텍스트가 다시 튀어나옴.

(이건 그냥 직접 실습해보는 게 이해가 빠를 것 같음)

 

 

여기서 스태시 리스트에 이름을 주고싶다면

git stash -m 저장내역

 

이렇게 메세지를 입력 후 다시 git stash list를 보면 내가 입력한 메세지로 리스트가 보이기 때문에 구분이 잘되어진다.

 

 

 

최신 스태시를 가져오고 싶을 땐 git stash apply로 가져와졌지만

"마지막 저장내역" 이라는 특정 스태쉬를 가져오려면?

git stash apply stash@{1}
 

 

4. git stash drop

: stash 삭제

 

git stash drop stash@{3} // stash 3 삭제

 

drop 한 후 list 확인해보면 원래 스태시 리스트 6개에서 5개로 줄어든 것이 확인됨