발생
작업 공용 브랜치 dev-be로부터 작업할 브랜치를 생성 후 작업함.
작업 후 커밋하기전 dev-be의 작업 전 버전과 작업 후 버전이 차이가 있는 상황.
로컬에서 최신 dev-be를 pull한 다음 충돌나는 부분을 해결 후 커밋하려고 했는데, pull하는 과정에서 아래와 같은 이슈가 발생함.
원인
You have divergent branches and need to specify how to reconcile them.
fatal: Need to specify how to reconcile divergent branches.
현재 Local의 dev-be 버전과 Remote의 dev-be의 버전(분기)가 달라 pull할 때 merge가 되어야 하는데
pull 전략이 따로 지정되어 있지 않아 위와 같은 에러가 발생한 듯 하다. (git 2.27부터 새로 추가된 기능)
해결
오류 내용을 살펴보면 hint로 설정을 바꾸는 방법이 나와있다.
전략은 3개 제시해줬으며 다음과 같다.
hint: git config pull.rebase false # merge
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
위의 전략에 대한 설명을 찾아보고 현재 글에 담고 싶었으나.. 간단 명료하게 담기에는 꽤 깊은 내용들이라 나중에 블로깅을 하기로 했다...
일단은 merge전략을 사용하려고 한다.
merge전략은 새로운 브랜치가 있을 경우 3-way-merge를 아니라면 fast-forward로 브랜치를 병합해준다.
git config --global pull.rebase false // 전역으로 설정할 경우
git config pull.rebase false // 현재 폴더 기준으로 설정
나는 전역으로 설정하기 위해 git config --global pull.rebase false를 사용했다.
Automatic merge failed; fix conflicts and then commit the result.
pull을 재실행하니 여러 개의 파일이 pull 되며 마지막에 위와 같은 메세지가 뜬다.
메세지를 따라서 충돌난 코드를 수정하여 다시 커밋하였고 오류는 해결됐다~!
'Git > Trouble Shooting' 카테고리의 다른 글
[Trouble Shooting] error: Your local changes to the following files would be overwritten by merge: (0) | 2022.11.10 |
---|