하던 작업을 잠시 중단하고 다른 브랜치로 전환하여 작업을 해야하는 상황이 있을 수 있습니다. 그때 완전히 다 완료하지 않은 작업을 커밋하기는 껄끄럽고, 그렇지만 브랜치를 전환하기 전 변경사항을 유지하고 싶을 때 git stash 명령어를 사용하면 됩니다. (git에서 자체적으로 변동사항이 있을 때 브랜치를 전환하는 경우, commit 또는 stash를 하라고 경고합니다.)
git stash
git stash로 코드 보관하기
git stash를 통하여 변동 사항을 다른 공간에 저장하는 방법은 다음과 같습니다. 이때 git stash를 입력하고 나면 파일들은 최근 commit 상태로 변경됩니다.
# 가장 기본적인 stash 방법
git stash
# stash를 하면서 메모 입력하기
git stash save "메모"
# 모든 stash 목록을 출력하기
git stash list
보관한 코드 다시 불러오기
보관한 코드를 불러오는 방법은 "pop"과 "apply", 이렇게 2가지가 있습니다. pop과 apply의 차이는 다음과 같습니다.
- pop: pop을 사용할 경우, 변경사항을 꺼낼 때 생성된 임시 저장공간을 삭제한다.
- apply: apply를 사용할 경우. 변경사항을 꺼낼 때 임시 저장공간을 삭제하지 않는다.
git stash로 보관한 코드가 여럿인 경우, pop과 apply 모두 최근에 보관한 코드부터 다시 불러옵니다. 원하는 특정 stash를 불러오고 싶은 경우 stash ID를 뒤에 덧붙이면 됩니다. stash ID는 최근에 보관한 코드가 0, 더 앞으로 갈 수록 숫자가 커지게 됩니다. (LIFO 방식)
# 보관한 코드 최근꺼부터 불러오기 (임시 저장공간 내역 삭제 O)
git stash pop
# 보관한 코드 최근꺼부터 불러오기 (임시 저장공간 내역 삭제 X)
git stash apply
# 원하는 특정 stash 불러오기
git stash pop stash@{[number]}
git stash apply stash@{[number]}
보관한 코드 기록 삭제하기
보관한 코드 기록을 삭제하는 것은 다음과 같이 "drop"이나 "clear"를 사용하면 됩니다. 보관한 코드를 불러오는 것과 마찬가지로 삭제할 ID 또한 0, 1, 2와 같은 숫자를 적으면 됩니다.
# 특정 stash 삭제
git stash drop 삭제할ID
# 모든 stash 삭제
git stash clear
반응형