2023. 5. 16. 00:53ㆍGit
문제 상황
프로젝트의 기능 개발을 위해 이슈를 생성하고 이슈 관련 브랜치를 만들어 작업했다.
작업을 완료하고 pr한 뒤 작업을 끝낸 브랜치를 내버려두었다.
새로운 작업을 위해 해당 브랜치에서 checkout하고 새로운 브랜치를 만드려고 하는데 ! 오류가 발생했다.
발생 이유
이 에러는 로컬에 변경 사항이 있는데 그를 커밋하거나 저장하지 않고 다른 브랜치로 checkout하려는 경우 발생한다.
만약 작업 내용을 커밋하지 않고 다른 브랜치로 변경하면 변경사항이 같이 따라가거나 conflict가 일어난다.
해결
git stash
>> stash 명령어를 사용하면 working directory에서 작업중인 모든 파일을 임시로 스택에 저장할 수 있다.
이제 git checkout main && git pull origin main을 통해 pull해오면 된다.(원래 하려던 작업)
git stash pop
>> 스택에 임시 저장한 변경 사항을 적용하고 스택에서 제거한다.
그 외
git을 사용하면서 stash는 처음 써봤다. 그래서 더 많은 명령어가 있는지 알아보았다.
1. 임시 저장한 작업 목록을 확인하고 싶을 때
git stash list
2. 임시 저장해 둔 작업을 삭제하지 않고 꺼내서 적용만 하고 싶을 때
git stash apply
>> 임시 저장 공간을 삭제하지 않기에 변경사항을 다중 브랜치에 적용하고 싶을 때 사용된다.
3. 임시 저장해 둔 작업을 삭제하고 싶을 때
git stash drop
>> 가장 최신 저장 작업 삭제가 디폴트이다. 만약 특정 작업을 삭제하고 싶다면 인수를 지정하면 된다.
4. 임시 저장한 작업을 모두 삭제하고 싶을 때
git stash clear
참고자료
https://velog.io/@devp1023/GIT-Stash
https://backlog.com/git-tutorial/kr/reference/stash.html