TIL

23/10/26 TIL __ git stash

GABOJOK 2023. 10. 26. 22:27

 

아직 작업중인데 잠깐 브렌치를 변경해야 하는 상황이 있다면, git stash 라는 명령어를 사용함으로 해결할 수 있다. 

 

 

🚗  git stash

 

  • 워킹 디렉토리에서 수정한 파일들만 저장한다.
  • 아직 끝내지 않은 수정사항을 스택에 잠시 저장했다가 나중에 다시 적용 가능하다. 
  • 브랜치가 달라져도 적용이 가능하다. 
  • git stash를 실행하면 새로운 stash가 스택에 만들어 지며 수정하던 내용이 저장된다
  • 워킹 디렉토리는 깨끗해진다. 
  • 워킹 디렉토리에 수정하고 커밋하지 않은 경우 stash를 적용할 수 있고, 충돌나면 알려준다.
  • git stash list 명령어를 통해 저장한 stash를 확인할 수 있다. 
  • git stash apply 를 사용해서 stash를 다시 적용할 수 있다. 
  • git stash apply stash@{구분값} 를 이용해서 원하는 부분만 골라서 적용할 수 있다.
  • 이름이 없다면 git은 가장 최근 stash를 선택해서 적용한다. 
  • staged에 있던 파일을 stash 를 했을때, 다시  staged 상태로 만들어 주지 않는다. 
  • 이를 적용하려면 git stash apply --index 를 이용해 staged 상태를 적용한다. 
  • git stash apply는 단순히 stash를 적용만 할 뿐, 스택에 여전히 stash 한게 남아있다.
  • stash를 지우기 위해서는 git stash drop을 사용해야 한다. 
  • git stash pop 은 stash를 적용하고 나서 바로 스텍에서 제거까지 해주는 애다. 
  • 기본적으로 git stash는 추적중인 파일만 저장한다. 
  • 추적중이지 않은 파일을 같이 저장하려면 stash 명령을 사용할 때에 git stash -u를 이용한다. 

 

명령어  실행 결과
git stash list 저장한 stash 확인
git stash apply stash 를 다시 적용
git stash apply stash@{구분값} 여러개의 stahs 중 원하는 부분만 골라서 적용
git stash apply --index  staged에 있던 파일 stash한 후 다시 staged 상태로 만들기
git stash drop stash 지우기
git stash pop stash를 적용 후 스텍에서 제거까지 

 

 

참고한 링크

https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Stashing%EA%B3%BC-Cleaning

 

Git - Stashing과 Cleaning

작업하던 저장소가 완전 지저분해져서 Git에게 진짜로 강제로 정리하도록 해야 하는 경우가 생길 수 있다. 예를 들어 Git 버전관리 데이터가 포함된 디렉토리를 복사해왔거나 서브모듈 디렉토리

git-scm.com