https://git-scm.com/book/ko/v2/Git-%EB%8F%84%EA%B5%AC-Stashing%EA%B3%BC-Cleaning
팀 프로젝트를 진행하는데 깜빡하고 브랜치를 안만들고 develop 브랜치에서 작업을 했다... 당황해하고 있었는데 팀원이 git stash 라는 명령어를 알려주었고 해당 명령어를 통해서 문제를 쉽게 해결할 수 있었다.
Stash는 Modified이면서 Tracking 되는 파일들과 Staging Area 즉 git add 한 파일들을 보관해두는 장소이다. 그렇기 때문에 위와 같은 상황에서 git stash 명령어를 사용하면 현재 브랜치에서 추가한 코드들을 저장해 두었다가 브랜치를 새로 만들고 해당 브랜치로 switch 한 뒤 git stash pop 명령어를 사용해서 새로 만든 브랜치로 작업한 코드를 그대로 옮길 수 있다.
stash 명령어는 위와 같은 상황이나 브랜치를 잠시 변경해야 하는 상황에서 아직 완료하지 않은 일을 커밋해야 하는 컬끄러운 상황에서 유용하게 사용될 수 있다.
사용방법
현재 위와 같이 develop 브랜치에서 코드를 수정한 상황이다. 여기서 git stash 명령어를 사용하면 아래와 같이 Saved working derectory 라는 문장을 확인할 수 있다.
이 상태에서 다시 git status 명령어를 사용하면 현재 develop 브랜치는 수정사항이 없다고 뜬다.
이제 새로운 브랜치를 만들고 해당 브랜치로 이동한 뒤 git stash pop 명령어를 사용하면 아래와 같이 stash에서 저장한 코드를 가져와서 이동한 브랜치에 반영한다. 이 상태에서 add, commit 한 뒤 원격 브랜치로 푸쉬하면 develop 브랜치에서 수정한 내용이 feature/mychallenge-api 라는 원격 브랜치로 push 된 것을 확인할 수 있다. 마지막으로 feature/mychallenge-api 브랜치를 develop 브랜치로 merge 하면 끝!!
'Git' 카테고리의 다른 글
[Git] Git Advanced (0) | 2022.11.29 |
---|