[Git] Git Merge 또는 Git checkout 오류 해결하기
문제 상황
git pull origin master
또는 git checkout master
와 같이 브랜치를 변경하거나, 원격저장소에서 pull을 받을때
아래와 같은 오류가 나온적 경험이 한번쯤은 있을것 입니다.
1 | error: Your local changes to the following files would be overwritten by checkout: |
error: Your local changes to the following files would be overwritten by merge:
error: Your local changes to the following files would be overwritten by checkout:
위와 같은 오류와 함께 pull이나 checkout이 동작하지 않습니다.
처음 Git을 사용하였을때는 집과 회사를 오가면서 깃허브를 이용해서 push도 하고 pull도 하고 잘 사용하다가
이런 오류가 나오면 어떻게 해야할지 모르겠고, 커밋을 해야하는것 같은데
무의미한 커밋을 하고 싶지는 않아서 다른 폴더로 clone을 하고 다시 작업을 했었는데요.
해결 방법
에러 메세지를 자세히 보면 해결 방법이 나와있습니다.Please commit your changes or stash them before you merge.
그리고Please commit your changes or stash them before you switch branches.
라는 문구가 있습니다.
메세지 그대로 merge 또는 switch branch 이전에 변경사항을 commit
하거나 stash
하라고 합니다.
위에서도 말했지만 저는 쓸데 없는 커밋을 하고싶지 않아 방법을 모르고 새 프로젝트를 실행했지만
이때는 git stash
명령어를 사용하면 됩니다.
stash는 간단하게 버전관리 되는 대상들을 잠시동안 임시저장 해두는 방법이라고 말할 수 있습니다.
그래서 어떻게 하라는건가요?
위와 같은 상황에서는 아래와 같이 사용하면 됩니다.
1 | # 현재 Staging 영역에 있는 파일의 변경사항을 스택에 넣어둡니다. |
간단하게 한줄로 표현하면 git stash && git pull origin master && git stash pop
와 같이 사용할 수 있습니다.
참고자료
git stash
에 대한 자세한 사용법은 해당 링크에서 확인할 수 있습니다.
[Git] Git Merge 또는 Git checkout 오류 해결하기
https://blog.hodory.dev/2020/02/18/error-Your-local-changes-would-be-overwritten-by-merge/