Git stash 삭제 임시 저장한 코드 변경 사항 리스트 비우기

Git 스태시, 도대체 왜 자꾸 쌓이는 걸까요?

개발 작업을 하다 보면 급하게 다른 브랜치로 옮겨야 하거나, 아직 커밋하기 애매한 변경 사항이 생길 때가 있습니다. 이럴 때 임시로 코드를 보관해두는 기능이 바로 Git 스태시(Stash)죠. 처음에 몇 개 없을 때는 참 편리한데, 이게 시간이 지날수록 목록이 길어지면서 관리가 어려워집니다. 저도 SourceTree를 열 때마다 20개가 넘는 스태시 목록을 보고 ‘이걸 언제 다 정리하지?’ 하면서 스트레스받곤 했어요.

쓸모없는 변경 사항이 쌓여 메모리를 차지하고, 작업 흐름까지 방해한다면 이제 과감하게 정리해야 합니다. git stash 삭제는 단순한 명령어 이상의 의미가 있습니다. 바로 깔끔한 개발 환경을 만드는 첫걸음이니까요. 오늘은 복잡하게 쌓인 스태시 목록을 쉽고 빠르게 비우는 실전 방법을 공유해 드릴게요. 터미널이든 SourceTree든, 어떤 환경에서도 적용할 수 있는 꿀팁입니다!

쌓여있는 임시 코드, 어떻게 확인할 수 있나요?

무작정 지우기 전에 현재 어떤 스태시들이 남아있는지 먼저 확인해야 합니다. 이건 기본 중의 기본이죠. 터미널을 열고 아래 명령어를 입력해 보세요. 남아있는 스태시 목록과 메시지를 한눈에 볼 수 있습니다.

git stash list

목록을 보면 stash@{0}, stash@{1} 같은 인덱스 번호가 붙어 있을 겁니다. 이 번호는 삭제나 적용을 할 때 특정 스태시를 지정하는 데 사용됩니다. 0번이 가장 최근에 저장한 스태시이고, 숫자가 커질수록 오래된 것임을 기억해 두시면 좋습니다. 이 목록을 보고 필요 없는 항목을 체크해 두면 다음 단계가 훨씬 쉬워집니다.

필요 없는 특정 항목만 쏙! git stash 삭제 하는 방법은요?

모든 스태시를 날려버리기에는 아까운 경우도 있습니다. 예를 들어, 최근에 실수로 저장한 항목 하나만 지우고 싶을 때가 그렇죠. 이럴 때는 git stash drop 명령어를 사용합니다. 만약 가장 최근에 저장한 스태시(stash@{0})를 지우고 싶다면 명령어만 입력하면 됩니다.

git stash drop

특정 인덱스 번호의 스태시를 지우고 싶다면 번호를 지정해 주세요. 저는 예전에 며칠 전에 저장해 둔 테스트 코드가 영 거슬려서 3번 인덱스를 지정해서 지웠던 경험이 있어요.

git stash drop stash@{3}

drop 명령은 한 번 실행하면 복구하기 매우 어렵습니다. 그러니 명령을 실행하기 전에 git stash list로 번호를 두 번 확인하는 습관을 들이는 것이 안전합니다.

SourceTree stash 관리 초보자를 위한 팁

SourceTree 사용자라면, UI에서 스태시 항목을 우클릭해서 ‘삭제’를 누를 수도 있지만, 스태시가 10개만 넘어가도 이걸 하나씩 지우는 건 시간 낭비입니다. SourceTree 상단의 ‘터미널 열기’ 버튼을 눌러 바로 다음 단계의 ‘전체 삭제’ 명령어를 활용하는 것이 훨씬 효율적입니다.

지겨운 목록, git stash clear 로 한 방에 끝내기

자, 이제 가장 속 시원한 방법입니다. ‘이 목록에 있는 건 전부 필요 없어!’라고 확신할 때 사용하는 필살기입니다. 바로 git stash clear 명령어를 사용하는 것입니다. 이 명령어는 현재 저장소에 있는 모든 스태시 항목을 깨끗하게 지워줍니다.

git stash clear

이 명령어 한 줄이면 쌓여 있던 수많은 스태시들이 순식간에 사라집니다. 목록이 비워진 것을 보면 묵은 체증이 내려가는 기분이에요. 하지만 다시 한번 강조하지만, 이 명령은 영구 삭제에 가깝기 때문에 사용 전에는 꼭 신중해야 합니다. 만약 특정 상황에서 git stash clear가 작동하지 않는다면, 대소문자 무시 설정(git config core.ignorecase false)을 확인해 보는 것도 방법입니다.

스태시 관리 명령어를 정리해 봤어요. 작업 환경에 맞춰 가장 적절한 방법을 사용해 보세요.

관리 방법사용 명령어주의 사항
목록 확인git stash list인덱스 번호(0부터 시작) 확인
부분 삭제git stash drop stash@{n}선택적으로 스태시 비우기 가능
전체 삭제git stash clear되돌리기 어려우니 신중해야 함

git stash pop과 apply, git 임시 저장소 삭제의 차이는 무엇인가요?

스태시를 단순히 삭제만 하는 것이 아니라, 저장된 내용을 다시 작업에 적용해야 할 때도 있습니다. 이때 사용하는 명령어가 popapply입니다. 이 둘의 차이를 이해하면 git 임시 저장소 삭제 과정을 더 스마트하게 관리할 수 있습니다.

  • git stash pop: 스태시 내용을 현재 브랜치에 적용함과 동시에, 스태시 목록에서 해당 항목을 자동으로 지워줍니다. 즉, 적용 후 삭제까지 한 번에 처리하고 싶을 때 유용합니다.
  • git stash apply: 스태시 내용을 현재 브랜치에 적용하지만, 목록에서는 삭제하지 않습니다. 같은 내용을 여러 브랜치에서 재사용해야 할 때 편리합니다. 삭제가 필요하다면 git stash drop을 별도로 실행해야 합니다.

저는 보통 작업 전환 후 내용이 확실히 필요하다고 판단되면 pop을 써서 깔끔하게 정리하는 편입니다. 이렇게 관리하면 목록이 쌓일 틈이 없어 SourceTree stash 관리가 훨씬 수월해지죠.

마무리: 깨끗한 Git 환경이 주는 편안함

개발은 코딩 자체뿐만 아니라 환경을 정리하는 과정도 중요합니다. 복잡하게 얽혀 있던 스태시 목록을 git stash 삭제 명령어들로 깔끔하게 비우고 나니, 작업할 때 집중도도 높아지는 것을 느낄 수 있습니다. 만약 실수로 중요한 스태시를 지웠다면 git reflog를 통해 해시값을 찾아 복구를 시도해 볼 수는 있지만, 복잡하니 애초에 clear나 drop 사용 전에 다시 한번 체크하는 습관을 들이는 것이 좋습니다.

이제 스태시 관리에 대한 부담감을 던져 버리세요! 오늘 알려드린 팁들을 활용하여 더욱 효율적이고 즐거운 코딩 라이프를 즐기시기를 응원합니다. 궁금한 점이 있다면 언제든지 댓글로 질문해 주세요!

자주 묻는 질문

SourceTree에서 꼭 터미널로 삭제해야 하나요?

UI로 가능하지만, 많으면 터미널이 빠릅니다.

git stash drop으로 지운 것도 되돌릴 수 있나요?

reflog를 이용해 시도는 가능합니다.

pop과 drop의 가장 큰 차이점은 뭔가요?

pop은 적용하며 삭제, drop은 내용 없이 삭제입니다.

Leave a Comment