본문 바로가기

공부 자료/깃허브 사용법

[Git 오류] git push, pull (fatal: refusing to merge unrelated histories)

git pull origin <브랜치 이름>
From <깃허브 주소>
 * branch            <브랜치 이름>   -> FETCH_HEAD
fatal: refusing to merge unrelated histories

pull : fetch + merge 작업을 한 번에 처리하는 명령어로 'git pull' 명령어는 'git fetch' + 'merge FETCH_HEAD'를 하는 것과 동일

fetch : 원격 저장소에 있는 내용을 가져오지만 자동으로 내 로컬 저장소에 merge를 하지 않으므로, 내용만 확인하고 로컬에 merge하고 싶지 않을 때 이용

 

상황 : 브랜치에서 FETCH_HEAD를 merge하는 것이 거부되었다는 에러가 발생. 즉, commit 히스토리가 서로 관련이 없기 때문에 merge를 할 수 없다는 의미가 됨.

 

 

해결방법 : 위의 pull 설명과 같이 fetch와 merge를 한번에 처리해야 하지만 현재 fetch만 처리되었으며, merge는 거부된 상태이브로 이를 해결하면 됨. 따라서 기본적으로 merge는 원격/로컬 저장소가 공통으로 가지고 있는 commit 지점이 존재해야 하기 때문에 공통된 커밋 포인트를 만들면 된다는 것.

 

방법1) git clone 명령어를 통해 원격 저장소 복제 >>  pull 명령어에 옵션을 추가해 강제 pull 진행

방법2) 'git pull origin (branchname) -allow-unrelated-histories' 를 통해 pull에 옵션을 추가한다.