본문 바로가기

개발

Git pull, fetch 및 에러(fatal: refusing to merge unrelated histories)

내가 이 글을 쓰게 된 계기는 바로 다음과 같은 에러 때문이다.

$    git pull
-- fatal: refusing to merge unrelated histories

이 에러에 대해서 이야기하기 위해 먼저 pull과 fetch를 비교해 보자.

##1. pull과 fetch 비교
###1) pull
fetch + merge. 즉, 원격 저장소에 있는 내용을 가져와 로컬에 있는 내용(내 코드)과 합친다.
###2) fetch
pull처럼 원격 저장소에 있는 내용을 가져오되 merge는 하지 않는다. 내용을 확인만 하고 합치고 싶지 않을 때 사용한다.

이때 merge는 remote repository와 local repository의 공통된 commit 지점부터 병합을 시작한다. 따라서 공통된 commit 지점이 있어야 한다. 그런데 그 공통된 commit 포인트가 없어서 위와 같은 에러가 난 것이다. 이에 대해 두 가지 해결책을 찾았다.

##2. 에러 해결책
###1) git clone
remote repository를 그대로 복제
###2) pull 명령어에 옵션 추가
강제로 pull

$    git pull origin *branchname* --allow-unrelated-histories

참조: https://jobc.tistory.com/177

'개발' 카테고리의 다른 글

[Linux] 파일 로그 보기(tail)  (0) 2020.03.20