개발을 하던 도중 커밋을 하기에는 애매한데 변경사항은 남아 있고 브랜치를 옮겨야 하는 상황이 발생할 수 있습니다.
이때 사용할 수 있는 방법이 바로 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 탭에 새로운 메뉴들이 추가됩니다.
또한 Changes 부분에도 변화가 생깁니다.
바로 Stash를 사용할 수 있는 기능이 추가된 것입니다. 해당 버튼을 누르게 되면 Stash의 이름을 입력하는 창이 나오고 입력이 끝나면 Stash에 저장됩니다.
stash에 마우스를 올리면 apply와 drop을 할 수도 있습니다.
지금까지 간단하게 stash에 대해서 알아보고 VSCode에서 GUI로 적용할 수 있는 방법까지 알아봤습니다. 자세한 내용은 공식 사이트를 참고하시면 될 것 같습니다.
참고
Git-Stashing과 Cleaning, git 공식, 2024.08.28
'개발' 카테고리의 다른 글
[HTTP] Bearer Token? 그게 뭔데 사용하는 거야 (1) | 2024.09.03 |
---|---|
[Vercel] 배포해보기 (0) | 2024.08.30 |
도커란 무엇인가? (0) | 2024.07.29 |
[VSCode 꿀팁] 나만의 Code Snippet 만들기 (0) | 2024.07.22 |
[Git] 원하는 커밋에서 브랜치 만들기 (0) | 2024.06.28 |