프론트엔드 정복하기
git stash 사용법 본문
최근에 A브랜치에서 작업을 완료 후 pull Request를 올렸다.
그리고 새로운 기능의 작업을 위해 B브랜치를 따서 쭉 작업하는 중, A브랜치에서 작업한 내용의 코드 리뷰를 받아 수정할 사항이 생겼다.
A브랜치로 넘어가 코드 수정을 해야하는데, B브랜치에서는 작업 중이다 보니 A브랜치로 그냥 넘어갈 수가 없다.
위 상황에서 우리가 선택할 수 있는 옵션은 다음과 같다.
- 현재 작업 중인 상황을 그대로 commit을 한다.
- 새로운 브랜치를 따서 commit 후, 다시 현재 브랜치로 돌아온다.
- 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 |