Git 오류: `fatal: refusing to merge unrelated histories`
카테고리
프로그래밍/소프트웨어 개발
서브카테고리
개발 툴
대상자
- 초보 개발자 및 Git 초반 사용자
- 로컬과 원격 저장소를 연결할 때 발생하는 오류 해결
- 난이도: 중간 (기본 Git 개념 이해 필요)
핵심 요약
fatal: refusing to merge unrelated histories
오류는 로컬 저장소와 원격 저장소가 공유된 커밋 히스토리가 없을 때 발생- 해결 방법:
git pull origin main --allow-unrelated-histories
명령어 사용 - 최선의 실천 방법:
git clone
으로 원격 저장소를 먼저 클론한 후 작업
섹션별 세부 요약
1. 오류 발생 원인
- 로컬 저장소와 원격 저장소가 완전히 분리된 역사를 가짐
- 예: 로컬에서
git init
후 GitHub에 연결하거나, 기존 프로젝트에 새 저장소 초기화 - 예: 두 개의 완전히 다른 저장소를 병합 시도
2. 해결 방법
--allow-unrelated-histories
플래그 사용:
```bash
git pull origin main --allow-unrelated-histories
```
- 주의: 이 명령어는 로컬 커밋이 원격 저장소에 덮어씌워질 수 있음
- 대안:
git clone
을 통해 원격 저장소를 먼저 클론한 후 작업
3. 예방 및 최적 실천
- 원격 저장소를 사용할 경우
git clone
으로 시작
```bash
git clone
cd repo
```
- 로컬에서
git init
후 원격 저장소 연결 시
```bash
git remote add origin
```
- 이미 로컬 히스토리가 있는 경우
```bash
git push -u origin main --force
```
- 주의: 이 명령어는 원격 저장소 히스토리가 완전히 덮어씌워짐
결론
- 원격 저장소 사용 시
git clone
을 먼저 사용하고, 로컬에서git init
은 피해야 함 --allow-unrelated-histories
플래그 사용 시 원격 히스토리가 덮어씌워지는 위험을 인지해야 함- 항상 최적의 워크플로우를 유지해 이 오류를 예방하세요.