본문 바로가기

버전관리/github

git stash(임시 처리)

만약 a라는 브랜치에서 작업을 하고 있는데 완료되지 않은 상황에서(수정만 하고 커밋하지 않은 상태) 다른 버그가 발생해서 수정 작업이 필요하다면 브런치 이동이 필요할 것이다.

 

그러나 수정작업을 커밋하여 워킹 디렉토리를 정리하지 않으면 브런치 이동이 되지 않는다.

이때 임시로 작업 내용을 저장하는 stash기능이 있다. 

stash는 stack 형태로 저장되기 때문에 저장된 내용을 pop하거나 stash에 저장한 채로 불러오는 apply를 사용할 수 있다.

 

git stash
git stash save "메시지"
git stash branch test // test라는 브랜치에 stash할 수 있음.

 

git stash list   //스태시 목록 확인

stash는 stack구조이기 때문에  stash@{번호}형태로 순차적으로 볼 수 있다.

 

master에서 버그를 수정해서 커밋한 후, feature브런치로 돌아와서 git status해보면 임시 저장한 내용들이 없어서 nothing to commit, working tree clean이 나온다.

 

저장된 내용은 아래와 같이 불러온다. 불러온 내용은 해당 브런치에 자동으로 병합이 된다. 이때 작업 내용이 충돌할 수 있다. 그렇기 때문에 스태시용 브랜치를 하나 생성해서 작업하는 것을 추천한다.

 

git stash pop

pop은 스택내용을 복원한 후 스택 목록에서 자동 삭제되지만 apply는 복사해오는 개념이기 때문에 삭제되지 않는 데 차이점이 있다.

 

git stash apply
git stash apply stash@{0}

 

 

아래는 스태시를 삭제하는 명령어이다.

git stash drop

'버전관리 > github' 카테고리의 다른 글

버전에 대한 개념  (0) 2021.06.29
git 병합  (0) 2021.06.29
github HEAD개념과 리모트 브랜치  (0) 2021.06.28
github branch명령어  (0) 2021.06.28
git pull / fetch (수동으로 내려받기)  (0) 2021.06.24