김펭귄 관찰일기
article thumbnail

1. fatal: refusing to merge unrelated histories

 Github에 레포를 열고 당겨왔는데 에러 메시지가 나며 제대로 Pull이 되지 않았다.

 

 
fatal: refusing to merge unrelated histories

=> 치명적인 : 연관성이 없는 기록들을 병합하는 것을 거부합니다.

 

 보통 깃 레포를 열고 클론해서 당겨오곤 한다. 그런데 위 에러가 발생한 환경을 보면, 깃에도 README.md 파일이 존재했고 remote를 연결해줄 디렉토리에도 이런저런 파일들이 존재했다. 아마 그래서 오류가 나지 않았나 싶다.

 

 

2. 해결 방법

https://stackoverflow.com/questions/37937984/git-refusing-to-merge-unrelated-histories-on-rebase

 

Git refusing to merge unrelated histories on rebase

During git rebase origin/development the following error message is shown from Git: fatal: refusing to merge unrelated histories Error redoing merge 1234deadbeef1234deadbeef My Git version is 2.9...

stackoverflow.com

 

"git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch --allow-unrelated-histories option to be used in a rare event that merges histories of two projects that started their lives independently.

 

 위 글을 간단히 요약하면 "Git merge는 불필요한 내용까지 병합해오는 것을 막기 위해, 관련 없는 두 브랜치를 병합할 때만 사용되도록 만들어졌다."는 것이다. 해결방법도 위에 적혀있는데, 엄청 간단하다.

 

git pull origin <Repository의 주소> --allow-unrelated-histories

 

 평소에 pull 해오던 것처럼 git pull origin 주소를 치고 관련 없는 히스토리도 당겨오라는 옵션을 붙여주기만 하면 된다.

 

 성공적으로 pull이 되는 것을 확인할 수 있다.

profile

김펭귄 관찰일기

@Penguin.Kim