본문 바로가기

Programming/Git

[Git] git pull 충돌 에러 (Your local changes to the following files would be overwritten by merge)

 

 

프로젝트 진행중에 

Git pull로 변경사항을 먼저 가져온 후에 push 하기 위해 

 

pull 명령어를 실행했을 때 충돌 에러가 났다. 
remote 소스와 로컬 소스 사이에 충돌이 일어났을때 발생하는 오류이다.

 

 

해결 방법은 
``` Please commit your changes or stash them before you merge. ``` 에 있다.

 

 

 

merge 전에 commit 또는 stash를 하라는 뜻이다.

 

Stash 명령어는

"로컬 변경 사항을 임시 저장 해두는 명령어" 이다.

 

  1. git stash 를 통해 내가 수정한 내용은 스택에 임시저장
  2. git pull origin <branch name(main)> 로 git 최신 소스 다운 ( origin 브랜치(remote)의 내용을 main브랜치로 가져온다)
  3. git stash pop 으로 변경사항 적용 및 스택 제거

 와 같이 해결할 수 있다.

 

 

git stash pop 이 후에

git status 로 상태를 확인해보면, 

 

와 같이 뜨는데, 위쪽 세 파일들은

"changes not staged for commit" -> pull 로서 변경된 내용이 가져와진 파일들에 대한 내용이다.

 

현재 로컬 작업 폴더에  pull로서 가져왔으므로 파트너의 소스코드 변경 내용이 내 로컬에서 병합 되었고,

커밋을 하여 변경 내용을 반영해주어야 한다 .