January 18, 2023
워킹 디렉토리에서 수정한 파일들만 저장(즉, 추적중인 파일만 저장)
Modified이면서 Tracked 상태인 파일과 Staging Area에 있는 파일들을 보관해두는 장소다. (새로 생성한 파일은 X)
git stash
git stash save
추적 중이지 않은 파일을 같이 저장하려면.(아래 두 명령어는 같다.)
git stash -u
git stash --include-untracked
stash에 저장한 파일 확인
git stash list
stash 에 저장한 파일을 복원
git stash pop
git stash apply
staged 에 있던 파일들을 stash 에 담은 후 다시 그대로(위 명령어) 꺼내면 unstaged가 된다. 만약 staged 상태를 유지하고 싶다면 —index
git stash apply --index
stash 에 저장한 파일들 중 일부분만 복원
우선 list 확인해서 제일 앞에 stash@{n} 으로 숫자 나와있음
git stash list
해당하는 것만 복원
git stash apply stash@{n}
staging area에 들어있는 파일들 제외 stash 에 넣기
많은 파일들을 변경했지만 몇몇 파일만 커밋하고 나머지 파일은 나중에 처리하고 싶을 때 유용하다.
git stash --keep-index
stash 제거
git stash apply 는 단순히 stash를 적용하는 것뿐이다. stash는 여전히 스택에 남아 있다.
git stash drop
stash를 적용한 브랜치 만들기
브랜치를 새로 만들고 stash를 복원해주는 매우 편리한 도구다.
git stash branch testchanges
워킹 디렉터리 청소하기
git stash -all
명령을 이용하면 지우는 건 똑같지만, 먼저 모든 파일을 stash 하므로 좀 더 안전하다. 추적 중이지 않은 정보를 워킹 디렉터리에서 지우고 싶다면. 하위 디렉터리까지 모두 지움. -f
옵션은 강제(force)의 의미.
git clean -f -d
명령 실행 시 결과를 미리 보고 싶다면 -n
옵션
git clean -d -n
무시된 파일까지 함께 지우려면 -x
옵션. 원래 .gitignore에 명시했거나 무시되는 파일은 지우지 않는다.
git clean -n -d