[TIL] Git Stash

syeoni_h·2025년 4월 8일

TIL

목록 보기
8/11

git stash는 현재 작업 중인 변경 사항을 임시로 저장하고, 작업 공간을 깨끗하게 비울 때 사용하는 Git 명령어

📌 언제 git stash 를 사용할까?

  • 긴급한 브랜치 변경이 필요할 때
    • 현재 브랜치에서 작업 중이지만, 다른 브랜치로 이동해야 하는 경우
    • 변경 사항을 커밋하지 않고 임시 저장하고 싶을 때
  • 작업 도중 최신 변경 사항을 반영해야 할 때
    • 현재 브랜치에서 개발 중인데, git pull을 하기 전에 변경 사항을 임시 저장해야 할 때
  • 불필요한 커밋을 방지하고 싶을 때
    • 작업이 완료되지 않았는데, 임시로 커밋하지 않고도 변경 사항을 저장할 때

1. 현재 변경 사항 임시 저장하기

git stash push -m "작업 내용 설명"

2. 다른 브랜치로 이동

git checkout 다른브랜치이름

🤦‍♀️ 이렇게 했는데 남아있다....

💡 원인은 추적되지 않는 파일(untracked files)

git stash는 기본적으로 추적되고 있는 파일만 저장
-> 새로 만든 파일들은 stash에서 제외되고 그대로 Changes에 남아있다
(새로 만든 파일 (= 아직 git add 안 한 파일들)은 무시됨)

✅ 해결 방법

git stash push -u -m "작업 내용 설명"

untracked 파일들도 같이 stash
-> -u (또는 --include-untracked) 옵션


Git Stash 관련 명령어

목적명령어설명
stash 목록 확인git stash list저장된 stash 목록 확인
가장 최근 stash 적용git stash apply가장 위에 있는 stash 적용 (삭제는 안 됨)
특정 stash 적용git stash apply stash@{n}지정한 stash(stash@{n}) 적용
가장 최근 stash 복원 및 삭제git stash pop가장 최근 stash 적용 + 해당 stash 삭제
특정 stash 복원 및 삭제git stash pop stash@{n}지정한 stash 적용 + 해당 stash 삭제
가장 최근 stash 삭제git stash drop가장 최근 stash 삭제
특정 stash 삭제git stash drop stash@{n}지정한 stash 삭제
모든 stash 삭제git stash clearstash 목록 전체 삭제
stash 저장 (untracked 포함)git stash -u 또는 --include-untracked추적되지 않은 파일도 포함하여 stash 저장

0개의 댓글