(Error)-refusing to merge unrelated histories

문제상황

  • 오류 메시지: fatal: refusing to merge unrelated histories
    • 기존에 어느 정도 commit & push 했던 저장소가 있는 상황
    • 어떠한 이유로 갑자기 commit이 되지 않아 git을 삭제(.git 파일 삭제)하고 다시 git init
    • git pull origin master를 해서 기존에 push됐던걸 받아온 후
    • 다시 commit & push 를 하려고 했을때 위의 오류 발생

해결법

  • git pull origin <branchname> --allow-unrelated-histories 커맨드 입력
    • 나의 경우는 branchname이 master였음
    • 변경된 사항이 있을 경우 추가로 add & commit
    • git push -u origin <branchname> 을 해서 conflict 된 파일들 수정 후 다시 add + commit + push

원인

git을 삭제했다가 다시 git init을 하고 git pull을 하면

우리가 봤을땐 같은 프로젝트임에도 불구하고

git의 입장에서는 전혀 새로운 프로젝트로 인식하는것 같다.

따라서 하나의 저장소에서 각각의 브랜치에서 작업하다가 합치는 git merge의 관점이 아닌

전혀 다른 2개의 저장소에서의 작업을 합치는 관점에서 바라봐야 하고

최초로 pull을 해오는 경우 뒤에 --allow-unrelated-histories 라는 커맨드를

추가로 입력할 필요가 있는 것이다.


Reference

Stackoverflow

Comments