git pull 오류 해결

박은정·2021년 9월 8일
0

프로젝트

목록 보기
21/34

merge된 remote repository의 master 내용을
내 local repository의 master branch 로 pull 받으려고 하는데
아래와 같은 오류가 발생하는 경우가 있다

error: Your local changes to the following files would
be overwritten by merge: 소스내용

이 에러메시지의 내용을 먼저 해석하면
내 local의 변경사항은 merge에 의해 병합되었다는 건데

나의 경우는 이미 Pull 했는데 새로 pull 해서 그런건가 싶긴한데 찾아본 결과, 두개의 블로그에서 해결방법을 찾을 수 있었다 출처!!

https://goddaehee.tistory.com/253
https://ucong-9796.tistory.com/44

overwrriten 오류 발생이유

여기서 말하는 overwrriten 에러발생의 이유를 다시 적어보면, 적으면서 이해하려고!
내 변경사항과 remote master 변경사항이 충돌하는 건데

여러 브랜치도 파일 수정시 여러 사람들이 작업하다보면 충돌이 나지만,
master branch 같은 하나의 branch 에서도 여러 사람들이 작업하다보면 충돌이 발생한다

예를들어 내가 수정한 파일을 다른사람이 push한 경우 해당 파일에 충돌이 발생하는 것 처럼...

overwrriten 오류 해결방법

사실 이렇게 적어도 하나의 branch 에서 충돌나는게 뭔가 싶긴한데
에러 발생이유는 나중에 다시 곱씹어 생각하기로 하고 일단 해결을 하자면 간단하다!

Please commit your changes or stash them before you merge.

내가 업데이트한 내용은 한쪽으로 치우고 remote repository로부터 최신상태로 변경해야 한다고 한다

git stash

그래서 git stash 명령어를 통해 오류가 발생한 commit 이전의 시점으로 백업하고

git pull origin master

다시 Pull 하니까 문제는 바로 해결되었는데

git stash pop

더 자세히 보니, pull하고 다시 git stash pop 으로 변경된 내용을 저장하고 백업한 내용을 stack에서 삭제했어야 했다!

중요하지 않은 이야기

이 명령어에서 pop이 스택에서 삭제한다는게 왜 익숙한가 싶었는데
mdn Array.prototype.pop() 내용을 보니까 생각났다

210825 괄호 짝꿍 찾기 이전에 알고리즘을 풀 때, stack 데이터 구조에 대해서 배웠는데
데이터가 추가되고 삭제되는 곳이 동일한 선형의 자료형태에서
데이터를 추출하는 메서드가 pop 이었고
여기서는 반환되는 것 보다는 해당하는 데이터에서 삭제하는 것에 초점을 두긴 했다

profile
새로운 것을 도전하고 노력한다

0개의 댓글