관리 메뉴

프론트엔드 정복하기

git stash 사용법 본문

버전 관리

git stash 사용법

GROWNFRESH 2020. 11. 15. 11:58

최근에 A브랜치에서 작업을 완료 후 pull Request를 올렸다.

 

그리고 새로운 기능의 작업을 위해 B브랜치를 따서 쭉 작업하는 중, A브랜치에서 작업한 내용의 코드 리뷰를 받아 수정할 사항이 생겼다.

 

A브랜치로 넘어가 코드 수정을 해야하는데, B브랜치에서는 작업 중이다 보니 A브랜치로 그냥 넘어갈 수가 없다.

 

 

위 상황에서 우리가 선택할 수 있는 옵션은 다음과 같다.

 

  1. 현재 작업 중인 상황을 그대로 commit을 한다.
  2. 새로운 브랜치를 따서 commit 후, 다시 현재 브랜치로 돌아온다.
  3. git stash 명령어를 이용한다. 

3은 1, 2와 달리 branch를 새로 따거나, 불필요한 commit을 할 필요가 없어진다.

 

 

 

작업중이던 파일을

git stash

=> (수정된) 현재 상태를 working directory에 임시 저장

=> 가장 최근 commit했던 상태, 또는 commit을 하지 않았다면 초기 상태로 돌아가게 된다.

 

git stash save NAME

=> NAME으로 stash를 저장한다.

 

git stash list

stash 목록 확인

 

stash@{0} : .....

 

위에서 stash@{0}는 stash ID다.

 

 

git stash apply stashID

=> stash ID로 저장된 stash 상태로 돌아간다.

 

git stash drop stashID

=> stash list에서 해당 stashID 내용을 삭제한다.

 

git stash pop

=> git stash apply 후 drop 한다.

=> 즉, stashID 상태로 돌아간 후에, list에서는 삭제한다.

 

=> git stash로 저장한 후, 해당 command를 쓰는 게 좋다. 아니면 apply 한 후, drop도 해줘야 한다.

 

 

git stash --patch

--patch 옵션을 붙이면 Git은 수정된 모든 사항을 저장하지 않는다.

대신 대화형 프롬프트가 뜨며 변경된 데이터 중 저장할 것과 저장하지 않을 것을 지정할 수 있다.

 


전에..

모르고 branch를 따기 전에 작업을 하다가,

branch를 따고 그 위에 작업을 하고 싶다면?

 

1) git stash 하여 임시 저장한다.

=> git stash list로 잘 저장 되었는지 확인한다.

 

2) origin/master 에서 branch를 딴다.

3) git stash apply stashID  하여 stash했던 상태를 되돌린다.

4) 정상적으로 작업을 한 후, 다음 단계를 실행한다.

 

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

git diff로 브랜치 간 차이점 확인하기  (0) 2020.12.24
git에서 원격저장소의 branch 가져오기  (0) 2020.12.24
Git & Bit Bucket  (0) 2020.11.14