(Git 명령어) 9. git stash - 작업 임시 저장하기

Byeongho Jeon·2025년 2월 20일

Git

목록 보기
10/13
  1. 프로젝트를 진행하다 보면 작업 내역이 마음에 들지 않지만 버리기는 아까울 때가 있을 수 있다. 또는 갑자기 다른 중요한 일을 처리해야 할 때가 있을 수 있다. 이런 상황에서는 지금까지의 변경 사항을 전부 지워버리는 것보다 어딘가에 임시 저장할 수 있으면 좋겠다라는 생각이 들 것이다.
    이런 상황을 위해 깃은 스태시(stash)라는 임시 저장 기능을 지원한다.
    스태시를 하게 되면 작업 디렉터리에서 생성한 모든 변경 사항이 임시 저장되고, 작업 디렉터리는 변경 사항이 생기기 전의 깨끗한 상태로 돌아간다. 또한 서로 다른 변경 사항 여러 개를 임시 저장할 수도 있다.
    그리고 스태시로 임시 저장된 변경 사항들은 언제든 다시 꺼내어 작업 디렉터리에 적용할 수 있다.

스태시를 사용할 수 있는 파일

스태시는 깃이 변경 사항을 추적하는(tracked) 파일에만 사용할 수 있다. 방금 막 생성한 파일처럼 깃이 기존에 변경 사항을 추적하지 않은(untracked) 파일에는 스태시를 사용할 수 없다.

  1. 스태시 명령어는 기본적으로 tracked 상태의 파일에 대해서만 사용할 수 있다.
    우선 버전 하나를 다시 만들어 보겠다.
  1. 이 상태에서 a.txt 파일에 문자 B를 추가해 a.txt 파일을 수정한다.
    작업 디렉터리에 변경 사항이 생겼으므로, 임시 저장을 할 수 있다.
    문자 B를 추가한 작업을 임시 저장하는 명령어는 git stash 이다. 단순히 git stash 명령어를 입력해도 작업이 임시 저장되지만, git stash -m "메시지" 또는 git stash --message "메시지" 명령어로 간단한 메시지와 함께 임시 저장할 수도 있다. 이는 임시 저장할 작업에 간단한 메모를 붙여 놓는 것과 같다.
  1. 임시 저장은 여러 번 할 수 있다.
    이번에는 a.txt 파일에 문자 C를 추가해 a.txt 파일을 수정하고 임시 저장해 보겠다.
  1. 지금까지 두 개의 작업을 임시 저장했다. 임시 저장한 작업 목록을 조회하는 명령어는 git stash list 이다.
    임시 저장한 항목이 두 개 나오는데, 하나는 stash@{0}이고, 다른 하나는 stash@{1} 이다. 임시 저장한 항목에 붙는 번호, 즉 0과 1 같은 번호는 최근에 저장한 작업일수록 숫자가 작다.
  1. 임시 저장했던 작업을 작업 디렉터리에 적용하는 명령어는 git stash apply <스태시> 이다.
    예를 들어, stash@{0}를 적용하는 명령어는 git stash apply stash@{0} 이다.
    스태시 이름을 명시하지 않고 그냥 git stash apply 명령어를 입력할 경우에는 최근에 임시 저장한 항목, 즉 stash@{0} 가 적용된다.
  1. 임시 저장했던 작업을 지우는 명령어는 git stash drop <스태시> 이다.
    예를 들어, stash@{0}를 삭제하는 명령어는 git stash drop stash@{0} 이다.
  1. 참고로 git stash clear 명령어로 임시 저장했던 작업을 전부 삭제할 수 있다.
profile
안녕하세요. 개발자 지망생 전병호입니다!

0개의 댓글