git pull --allow-unrelated-histories
1. git pull --allow-unrelated-histories 란?
보통 서로 다른 프로젝트를 하나로 합치거나, 원격 저장소와 로컬 저장소가 서로 공통 조상을 갖지 않을 때 사용한다.
2. 오류 상황 예시
fatal: refusing to merge unrelated histories
🧨 언제 발생하나?
- 로컬에서
git init
으로 새 저장소 생성 후 커밋 - 원격 저장소(GitHub)에 다른 초기 커밋이 존재 (예: README.md)
- 이후
git pull origin main
시 위 오류 발생
3. 해결 방법
git pull origin main --allow-unrelated-histories
- 두 히스토리 병합 강제 수행
- 이후 충돌(conflict)이 발생할 수 있으니 수동으로 해결 필요
4. 사용 예
# 로컬 초기화
git init
git remote add origin https://github.com/user/repo.git
# 강제 병합
git pull origin main --allow-unrelated-histories
5. 주의사항
- 한 번만 사용하면 충분: 병합이 끝나고 연결되면, 이후부터는 일반
git pull
로도 작동합니다. - 병합 충돌 발생 가능성이 크므로 사용 후 커밋 기록 확인 필수
6. 관련 옵션
옵션 | 설명 |
---|---|
| 병합 대신 리베이스로 히스토리 깔끔하게 유지 |
| 병합하되 커밋은 직접 하고 싶을 때 |
| 충돌 시 우선할 히스토리 선택 |