수정 중인 파일을 커밋하지 않은 상태에서 다른 파일로 넘어갈 때 사용한다.
감추기를 사용하지 않으면 아직 커밋하지 않은 파일들을 커밋하라는 메시지가 나오며 다른 작업을 할 수 없다.
명령어
git stash
현재 작업트리를 감춘다.
git stash [push] -m "메시지"
현재 작업트리를 감추면 메시지를 넣을 수 있다.
기본적으로 git stash는 git stash push기능을 한다.
git stash [push] --keep-index || -k
이 옵션을 이용하면 이미 stage에 올라간 파일을 stash하지 않고 나머지만 넣는다.
특정 파일만을 감추고 싶을 때 감추지 않을 파일을 add하고 사용하면 원하는 파일만 stash에 넣을 수 있다.
메시지를 같이 넣고 싶으면 -km을 해주면 된다.
git stash list
감춘 파일의 목록을 보여준다.
git stash pop
최근 감춘 작업트리를 불러오고 stash 목록에서 삭제한다. 만약 불러올 때 충돌이 일어나면 목록에서 삭제되지 않기 때문에 충돌을 해결하고 직접 삭제해주어야 한다.
git stash apply
최근 감춘 작업트리를 불러오고 stash 목록에 그대로 남겨둔다.
git stash drop
stash 목록에서 가장 최근 항목 삭제
활용
작업 디텍토리와 인덱스의 현재 상태를 기록하고 싶지만 깨끗한 작업 디렉토리로 돌아가야 할 때 사용한다.
파일을 수정하던 중 다른 사람이 작업한 것을 pull로 받아와야할 때, 커밋하지 않고도 작업 디렉토리를 깨끗하게 만들어 오류발생을 방지할 수 있다.
보통 git pull을 했을 때 오류가 발생하면 git stash로 작업트리를 감추면 오류없이 git pull이 진행된다.
에러
No local changes to save
기본적으로 git stash는 추적되지 않은 파일은 저장하지 않는다.
추적되지 않은 파일도 숨기려면 -u || --include-untracked 옵션을 사용하면 된다.
'Git' 카테고리의 다른 글
Git ) Windows OS에서 Filename too long 오류 (0) | 2023.05.26 |
---|---|
Git ) Git-hub 깃허브 (0) | 2022.03.03 |
Git ) git merge 병합과 충돌해결 (0) | 2022.03.03 |
Git ) 설정 (0) | 2022.03.02 |
Git ) 기본적인 git 명령어 (0) | 2022.03.02 |
댓글