깃허브 fatal: refusing to merge unrelated histories 에러 해결법

hyerin·2023년 2월 26일
0

우선! 깃허브 에러가 날때는 해당 문제 상황을 반복시키는 것보다
해결책을 찾는게 중요하다는 것을 배웠다.

1. 에러를 구글에서 찾아본다.
2. 해결 코드를 찾아본다.
3. 왠만하면 해결

깃허브에 pull하는 과정에서 다음과 같은 에러가 생겼다

fatal: refusing to merge unrelated histories

서로 다른 프로젝트를 두 개이상의 프로젝트를 commit할때 merge하는 과정에서 에러가 생긴것이다.
이땐 다음과 같은 명령어를 실행해야 한다.

git pull origin main --allow-unrelated-histories

이 명령어는 기존의 있던 종류가 다른 히스토리와 merge시켜주는 명령어이다.

이 해결방법 다음과 같은 에러가 났을 때 사용도 가능하다. 이런 에러는 init,add를 했는데 그 이후 과정이 진행이 안되는 에러이다. 아마 그 전에 같은 파일에서 에러가 생겼을 가능성이 높다.

에러1 > On branch main
nothing to commit, working tree clean

에러2 > error: failed to push some refs to

이 상황에서 사이트에서 알려준 것처럼 push전 pull을 하면 아까와 같은 에러가 발생할 수 있는데, 위와 같은 방법으로 대처하면 된다.

✅ 추가 : fork한 레포를 fetch하고 merge하는 과정에서 이 에러가 생길 수 있다는 점을 발견했다

git merge upstream/main

이 명령어를 썼을 때

fatal: refusing to merge unrelated histories

에러가 나왔다면 무조건 pull --rebase 때리지 말고

git pull origin main --allow-unrelated-histories

이걸 쓰자..

참고 : 같은 레퍼토리인데도 같은 main 사이에서 병합을 해야하는 이유 -> 현재 main브랜치와 기존의 main브랜치의 코드가 다르므로 main끼리 merge가 필요하다. 즉, 한파일에서도 main의 코드가 다르기에 에러가 충분히 날 수 있다.
참고한 사이트

https://www.educative.io/answers/the-fatal-refusing-to-merge-unrelated-histories-git-error //
https://gdtbgl93.tistory.com/63

profile
글쓰기의 시작은 나를 위해, 끝은 읽는 당신을 위해

0개의 댓글