[Git] error: fail to push some refs to 'github.com...' : remote 영역에서 변경사항이 있는데 push했을 때

hzn·2022년 9월 18일
0

Error Note💥

목록 보기
1/3
post-thumbnail

💥 에러 상황

👉🏽 error: fail to push some refs to 'github.com...'

  • remote 레포지토리에서 README 파일을 직접 수정하고
  • 그 후 local repository에서 작업하고 add, commitpush 했더니 에러가 발생했다.
    (add, commit까지는 가능했으나 push가 안됨)

🧐 왜?

remote 레포지토리에 변동사항이 있는데 나의 local 레포지토리에 반영되어 있지 않아서 발생하는 문제.

  • 위의 hint를 읽어보면 push전에 일단 git pull... 등을 이용해서 remote의 변경 사항을 통합하라고 하는 것을 알 수 있다.
  • 이런 상황은 주로 다른 레포지토리에서 해당 remote 레포지토리에 push했을 때 발생한다고 하는데, 나의 경우는 remote 레포지토리에서 직접 변경한 README 파일 때문에 생긴 문제였다.(어쨌든 remote 레포지토리의 현재 상태가 나의 local 레포지토리에 반영되어 있지 않으면 생기는 문제)

🌟 해결 방법

git pull origin main
  • git pull origin main으로 remote 레포지토리의 최종 상태를 내 local 레포지토리에 pull 받아왔다.
  • 이후 다시 원래 진행하려던 push를 진행하면 된다. (add, commit은 이전에 이미 했기 때문에 할 필요 없음)

but...🔥🔥🔥

hint: pulling without specifying how to reconcile divergent branches is discourage. you can squelch this message by running one of the following commands sometimes before your next pull

  • 이렇게 서로 다른 브랜치를 어떻게 조정할 것인지 명시하지 않고 pull 하는 것은 권장되지 않는다고 한다! pull 하는 방법에 대해서도 공부가 필요할듯😵

😵 만약 pull이 거부될 경우

  • git pull origin main로 pull 해오려고 하는데 아래 메시지가 나오며 거부될 경우
fatal: refusing to merge unrelated histories

  • 아래 명령을 실행한다
git pull origin 브랜치명 --allow-unrelated-histories
  • 이미 존재하는 두 프로젝트의 기록(history)을 저장하는 드문 상황에 사용
  • 즉, git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것.
  • 이후 다시 원래 진행하려던 push를 진행하면 된다.

😵 pull 이후에도 push가 안되는 경우

  • pull 하고 다시 push 하려는데 아래 메시지가 뜰 경우

  • 데이터 유실 등 문제가 있을 수 있는 부분이 있어 git에서 처리 되지 않도록 에러를 띄우는 것

  • 임시방편으로 +를 사용해 해결 가능하다

git push -u origin +main

0개의 댓글