포시코딩

git stash - 진행상황 임시저장 본문

Git

git stash - 진행상황 임시저장

포시 2023. 1. 2. 17:43
728x90

개요

feature/test 브랜치에서 작업중, 팀장이 dev 브랜치에 hotfix를 적용시켜

내가 개발중인 코드에서 dev를 merge해야하는 상황이 생겼을 때

 

진행중이던 작업물에 대해 임시 메시지로 commit한 후에 브랜치를 바꿔 받아온 경험이 있을 것이다.

 

이런 상황에서 git stash를 쓴다면 필요없는 commit을 남기지 않고

작업 진행상황을 임시저장한 후 불러올 수 있다.

 

사용법

조건

일단 staged changes에 올라간 파일이 없어야 한다. (git add 된 파일이 없어야 한다는 뜻)

만약 있다면 git reset을 통해 다시 Unstaged 상태로 되돌리자

git reset

 

저장

git stash push -m '내용'

여러 stash가 생길 경우를 고려해 내용을 직접 입력해 stash를 구분지을 수 있다.

 

저장목록 확인

git stash list

저장된 stash의 목록을 확인할 수 있다.

stash@{index}와 위에서 저장할 때 적은 내용을 확인할 수 있다. ex) 4545, test_123

 

저장된 stash 불러오기

git stash pop stash@{index}

목록에서 확인한 index를 통해 직접 골라 stash를 적용할 수 있다.

 

저장된 stash 삭제하기

삭제는 두가지 방법으로 할 수 있다.

첫번째는 가장 최근 저장된 stash를 삭제하는 방법

git stash drop

두번째는 pop으로 특정 stash를 가져올 때와 마찬가지로 특정 stash를 삭제하는 방법이다.

git stash drop stash@{index}

 

그 외 명령어

stash는 push, pop 말고도 저장 및 불러올 때 사용하는 명령어가 몇가지 더 존재한다.

git stash

마지막으로 commit된 메시지로 stash를 저장한다. 

 

git stash apply

마지막으로 저장된 stash를 불러온다.

 

아마 많은 다른 블로그에서는 위 두 명령어로 가르쳐줄 것이다.

하지만 commit 메시지로 저장되면 나중에 다시 확인할 때 이게 어떤거에 대한 임시 저장인지 헷갈릴 수 있고

마지막으로 저장된 stash를 불러왔는데 내가 원하지 않는 stash일 수 있어서 위 방법들은 개인적으로 추천하지 않는다.

 

직접 메시지를 명시해 저장하고, 저장된 stash중 원하는 stash를 골라 가져오는게 더 낫은 방법이 아닐까하여

제일 처음에 소개한 git stash push, git stash pop 명령어를 사용하는 것을 추천한다.

728x90