Skip to main content

git pull --allow-unrelated-histories


1. 의미

--allow-unrelated-histories는 Git에서 서로 연관되지 않은 두 히스토리를 강제로 병합할 때 사용하는 옵션이다.
보통 서로 다른 프로젝트를 하나로 합치거나, 원격 저장소와 로컬 저장소가 서로 공통 조상을 갖지 않을 때 사용한다.

fatal: refusing to merge unrelated histories
  • 로컬에서 git init으로 새 저장소 생성 후 커밋
  • 원격 저장소(GitHub)에 다른 초기 커밋이 존재 (예: README.md)
  • 이후 git pull origin main 시 위 오류 발생

2. 해결 방법

git pull origin main --allow-unrelated-histories
  • 두 히스토리 병합 강제 수행
  • 이후 충돌(conflict)이 발생할 수 있으니 수동으로 해결 필요

3. 관련 옵션

옵션

설명

--rebase

병합 대신 리베이스로 히스토리 깔끔하게 유지

--no-commit

병합하되 커밋은 직접 하고 싶을 때

--strategy=ours / theirs

충돌 시 우선할 히스토리 선택