git stash

2021-07-24 hit count image

Git에서 git stash를 사용하여, 현재 작업중인 내용을 임시로 저장하는 방법에 대해서 알아봅시다.

개요

Git으로 소스 코드의 버전 관리를 할 때, 새로운 기능을 개발하는 도중에, 서비스에서 버그가 발생하여 버그를 수정해야할 경우가 발생합니다. 이때, 버그 수정을 위해 새로운 브랜치를 만들어야 하는데, 현재 개발중인 기능이 커밋이 되어있지 않기 때문에, 브랜치 만들거나 다른 브랜치로 이동할 수 없습니다.

이럴때, 현재 작업중인 내용을 커밋할 수 도 있지만, 작업이 다 끝나지 않은 상황이므로, 커밋하기에는 부족한 부분이 있습니다. 이때, 사용 가능한 것이 git stash입니다.

이번 블로그 포스트에서 git stash를 사용하는 방법에 대해서 알아봅시다.

저장

git stash는 Git으로 버전 관리를 하고 있는 파일에 수정 내용을 임시로 저장할 수 있는 기능입니다. 다음 명령어를 사용하여 현재 작업중인 내용을 저장할 수 있습니다.

git stash

git stash는 Git으로 버전 관리를 하고 있는 파일들에 수정 내용을 임시로 저장하기 때문에, 새롭게 생성된 파일은 저장되지 않습니다. 새롭게 생성된 파일도 함께 저장하고 싶다면 git add로 새롭게 생성된 파일들을 Git으로 관리하도록 한 후, git stash를 통해 저장해야 합니다.

git add .
git stash

리스트

git stash를 사용하여 저장하면, 스택(Stack) 형식으로 수정 사항이 저장됩니다. 이렇게 저장된 리스트를 확인하기 위해서는 다음과 같이 list 옵션을 사용할 수 있습니다.

git stash list

이렇게 명령어를 실행하면, 다음과 같이 변경 사항 저장 리스트를 확인할 수 있습니다.

stash@{0}: WIP on main: 79fb440 Merge branch 'develop' into main

불러오기

그럼 이렇게 저장된 내용을 다시 불러오는 방법에 대해서 알아봅시다. git stash에 저장된 내용을 불러오기 위해서는 apply 옵션을 사용할 수 있습니다.

git stash apply

이렇게 저장된 stash를 불러와 현재 브랜치에 적용할 수 있지만, git stash list를 사용하여 stash의 리스트를 확인해 보면, 여전히 저장된 정보가 남아있는 것을 확인할 수 있습니다.

git stash list
# stash@{0}: WIP on main: 79fb440 Merge branch 'develop' into main

이렇게 남아있는 정보는 drop 옵션을 사용하여 제거할 수 있습니다.

git stash drop

만약, 저장된 내용을 적용하고, 사용한 정보를 바로 삭제하고 싶다면, pop 옵션을 사용하면 됩니다.

git stash pop
# git stash apply
# git stash drop

완료

이것으로 git stash를 사용하여 수정하고 있는 내용을 임시로 저장하는 방법에 대해서 알아보았습니다. git stash를 사용할 때 주의점은, 커밋이 되었거나, git add로 추가된 파일만 임시 저장이 가능하다는 것입니다. 이제 여러분도 git stash를 사용하여, 현재 수정중인 내용을 임시로 저장하고 다른 브랜치로 이동해 보시기 바랍니다.

제 블로그가 도움이 되셨나요? 하단의 댓글을 달아주시면 저에게 큰 힘이 됩니다!

앱 홍보

책 홍보

블로그를 운영하면서 좋은 기회가 생겨 책을 출판하게 되었습니다.

아래 링크를 통해 제가 쓴 책을 구매하실 수 있습니다.
많은 분들에게 도움이 되면 좋겠네요.

스무디 한 잔 마시며 끝내는 React Native, 비제이퍼블릭
스무디 한 잔 마시며 끝내는 리액트 + TDD, 비제이퍼블릭
[심통]현장에서 바로 써먹는 리액트 with 타입스크립트 : 리액트와 스토리북으로 배우는 컴포넌트 주도 개발, 심통
Posts