크고 작은 문제들/오류

[Git] fatal: refusing to merge unrelated histories

노새두마리 2023. 8. 30. 23:53

문제 상황

  • 우선 로컬에서 프로젝트를 생성하여 작업을 수행하였습니다.
  • Github 상으로 README를 추가하여 원격 저장소를 생성하였고, 곧바로 README를 수정하는 커밋을 남겼습니다.
  • Git remote add 후 git pull을 시도하였으나 실패하였습니다.

원격 저장소를 생성할 때에 독자적으로 README를 추가하고 수정하는 커밋을 남김으로써 로컬 저장소와는 별개의 커밋 이력을 가지게 되었습니다.

※ 두 Initial 커밋은 서로 다른 커밋입니다.


해결

git pull을 사용할 때에 --allow-unrelated-histories 옵션을 사용하여 강제로 커밋을 공유합니다. 해당 옵션을 사용하면 완전히 별개의 커밋 이력을 가진 저장소 간의 커밋을 공유할 수 있게 됩니다.

pull 성공

 

위의 방법 이외에도 pull 대신 push의 force 옵션을 이용할 수도 있습니다. 이 경우에 충돌이 있더라도 로컬의 변경사항이 바로 원격에 덮어씌워집니다.

두 방법 모두 기본적으로 공통된 커밋 기록을 가지지 않는 서로 다른 저장소에 대해 강제적인 변경을 적용할 수 있는 옵션이므로 이를 적용할 저장소를 착각하여 사용하지 않도록 주의하여 사용합시다.

 

참고

https://gdtbgl93.tistory.com/63

https://git-scm.com/docs/git-pull

https://git-scm.com/docs/git-push