아직 작업중인데 잠깐 브렌치를 변경해야 하는 상황이 있다면, 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
'TIL' 카테고리의 다른 글
23/10/29 TIL _ 실행컨텍스트, 호이스팅에 관하여 (0) | 2023.10.29 |
---|---|
23/10/27 TIL _ nullish 병합 연산자 " ?? " (0) | 2023.10.27 |
22/10/25 TIL __ localstorage (1) | 2023.10.25 |
23/10/24 TIL __ script type = "module" / defer (0) | 2023.10.24 |
23/10/23 TIL __ Map(), Set() 복습 (0) | 2023.10.23 |