728x90
에러메시지
fatal: refusing to merge unrelated histories
상황
신규 repository에 새로 push 할려는 상황
근데 git local과 연결하고 push하기 전에 github에서 먼저 read.me를 만들어두고 전날 커밋해둠. 리드미를 지우면 해결되지만 전 날 잔디를 유지하고 싶어서 방법을 찾는 중
원인
에러 메세지 의미 : commit 히스토리가 서로 관련이 없다는 뜻
즉, 서로 관련성이 없기 때문에 merge할 수 없다는 것
github에서 새 repository를 생성하면서 만든 readme.md 파일때문인데
Git의 작동방식은 로컬 저장소의 commit 목록과 원격 저장소의 commit 목록을 비교한 후 원격 저장소의 마지막 commit id와 동일한 commit id를 가진 로컬 저장소의 commit 시점을 찾아낸 뒤, 원격 저장소의 마지막 커밋과 연결하기 때문
원격 저장소의 첫번째 commit이자 마지막 commit인 readme를 추가하는 commit이 원격 저장소에는 존재하지 않고, 따라서 현 상태에서는 둘을 연결할 수 없다.
해결
방법1
repository를 삭제하고 다시 만든다. (readme.md 파일을 없애고 다시 저장소를 만든다.)
방법2
git pull origin 브런치명 --allow-unrelated-histories
git에서는 서로 관련 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이를 허용하는 명령어
방법3
강제로 합병하는 방법
주의! 기존 커밋했던 코드 및 파일이 유실될 수 있음
git push -u origin +master
git push origin master -f
참고자료(Reference)
728x90
반응형
'Git & GitHub' 카테고리의 다른 글
[Git] git diff 정리 (0) | 2023.02.11 |
---|---|
[Git] pull 시, conflict 해결방법 : 강제 pull (0) | 2022.12.10 |
[GitHub] 디폴트(default) 브랜치(branch) 변경 및 브랜치명 변경하기 (0) | 2022.11.30 |
[Git] remote원격저장소(깃허브) 연결(추가), 조회, 연결해제(삭제) (0) | 2022.08.02 |
[GitHub] Fork & Fork 업데이트 하기 (0) | 2022.07.29 |