Programming/Git
[Git] Stash 개념과 사용 방법 - Commit 할 수는 없는데 브랜치 전환이 필요할 때!
erinh
2023. 4. 23. 21:38
반응형
[들어가기 전에]
프로젝트를 하다보면 종종 아직 작업한 부분이 Commit을 할 수는 없는 상태인데
브랜치 변경을 해서 다른 브랜치에서 작업이 급하게 필요할 때 현재 작업한 부분을 어떻게 해야할지..?애매한 상황이 종종 발생하곤 했었다!
그럴 때 파일의 변경 사항들을 임시적으로 저장할 수 있는 것이 Git Stash!
이번에 강의를 들으면서 새롭게 알게 되었다. 역시 안되는건 없다,,
[Git Stash 개념]
: 아직 완성되지 않은 작업을 스택에 임시 저장할 수 있도록 하는 깃 명령어
- stash는 워킹 디렉토리에서 수정한 파일들만 저장(아래 2가지 종류의 파일)
1) Modified & Tracked 상태의 파일
2) Staging Area에 있는 파일(Staged 상태의 파일)
[사용 방법]
1. 하던 작업 stash에 임시 저장
# 새로운 stash 만들기
$ git stash push -m "message"
# stash를 만들지만 현재 있는 애들 staging area에 남겨 놓기 (원래 stash 하면 사라짐)
$ git stash --keep-index
# untracked 파일도 포함하여 stash에 옮기기
git stash -u
stash에 작업중인 파일들을 저장하고 나서 새로운 작업을 위해 다른 브랜치로 변경 가능
2. stash 목록 확인
# 모든 stash 목록 조회
$ git stash list
3. stash 적용하기 (했던 작업 가져오기)
# 가장 최근의 stash를 가져와 적용
$ git stash apply
# stash 해쉬 값을 가져와 적용
$ git stash apply hash
# stage한 상태까지 모두 원복하려면 --index 옵션 붙여줘야 함
$ git stash apply --index
# stash를 적용한 후 해당 stash를 목록에서 바로 삭제
$ git stash pop
4. stash 삭제하기
# 가장 최근의 stash 제거
$ git stash drop
# 해시값에 해당하는 stash 제거
$ git stash drop hash
# 전체 stash 삭제
$ git stash clear
반응형