본문 바로가기

개발

[Git 꿀팁] 브랜치를 잠깐 바꾸고 싶은데 커밋은 애매해? stash 활용!

개발을 하던 도중 커밋을 하기에는 애매한데 변경사항은 남아 있고 브랜치를 옮겨야 하는 상황이 발생할 수 있습니다.

 

이때 사용할 수 있는 방법이 바로 git stash를 활용하는 것입니다.

 

git stash or git stash save 명령어를 사용하면 'modified이면서 tracked 상태인 파일 + Staging Area'에 있는 파일들을 따로 보관할 수 있습니다. 이 상태가 되면 변경된 파일들이 모두 stash로 이동해서 없는 상태가 되기 때문에 브랜치의 이동을 자유롭게 할 수 있습니다. 원하던 작업을 하고 다시 돌아오면 되는 겁니다.

 

저장된 파일들은 git stash list 명령어를 통해 목록을 확인할 수 있습니다.

 

다시 작업하던 브랜치로 돌아와 stash에 저장된 파일들을 적용하려 git stash apply <stash name> 명령어를 통해 다시 불러올 수 있습니다. 다시 적용할 때 깜박하고 작업을 진행했더라도 문제없이 잘 적용이 되고, 충돌이 발생하면 해당 사항도 알려줍니다.

🍯tip! git stash apply 명령어를 사용할 때 --index 옵션을 같이 사용한다면 Staging Area에 있던 파일들은 따로 staged 상태를 적용해서 불러온다.

 

마지막으로 stash를 성공적으로 불러왔다면 필요 없는 stash는 git stash drop <stash name> 명령어를 사용해 삭제합니다.

 

📑GUI with.VSCode

언제나 CLI보다 GUI가 편하기 때문에 VSCode에서 눈으로 보면서 할 수 있는 방법도 같이 알려드립니다.

 

우선 Git Lens Extension을 설치합니다.

설치를 하고 나면 좌측 Source Control 탭에 새로운 메뉴들이 추가됩니다.

GitLens로 추가된 메뉴

또한 Changes 부분에도 변화가 생깁니다.

새로 추가된 기능

바로 Stash를 사용할 수 있는 기능이 추가된 것입니다. 해당 버튼을 누르게 되면 Stash의 이름을 입력하는 창이 나오고 입력이 끝나면 Stash에 저장됩니다.

새로 저장된 stash

stash에 마우스를 올리면 apply와 drop을 할 수도 있습니다.

stash 메뉴

 

지금까지 간단하게 stash에 대해서 알아보고 VSCode에서 GUI로 적용할 수 있는 방법까지 알아봤습니다. 자세한 내용은 공식 사이트를 참고하시면 될 것 같습니다.

 

참고

Git-Stashing과 Cleaning, git 공식, 2024.08.28