tool/git

git push error (non-fast-forward), git pull error(fatal: refusing to merge unrelated histories)

dddzr 2024. 2. 25. 13:42
git push origin main

 

1. non-fast-forward

User
> git push -u origin main
To https://github.com/{repository url}
 ! [rejected]        main -> main (non-fast-forward)
error: failed to push some refs to 'https://github.com/{repository url}'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. If you want to integrate the remote changes,
hint: use 'git pull' before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

"non-fast-forward" 에러는 리모트 저장소의 변경 사항이 로컬 브랜치의 변경 사항보다 더 최신인 경우에 발생합니다.
git pull 명령을 사용하여 리모트 저장소의 변경 사항을 로컬 브랜치로 가져온 다음 push해야 합니다.

git pull origin main

 

 

2. fatal: refusing to merge unrelated histories

$ git pull origin main
From https://github.com/{repository url}
 * branch            main       -> FETCH_HEAD
fatal: refusing to merge unrelated histories

 

"fatal: refusing to merge unrelated histories" 오류는 주로 두 가지 상황에서 발생합니다

  • 로컬 저장소와 리모트 저장소 간에 서로 다른 브랜치 히스토리가 있을 때.
  • 두 저장소 간에 아예 다른 프로젝트가 있을 때.

이 경우, 이전에 로컬에서 새로운 저장소를 만들었거나, 리모트 저장소를 초기화하지 않고 새 저장소를 만들었을 가능성이 있습니다.

해결책으로는 두 브랜치의 히스토리를 합치는 것입니다.

--allow-unrelated-histories 옵션을 사용하여 git pull을 실행하여 이 작업을 수행할 수 있습니다.

git pull origin main --allow-unrelated-histories