git push 오류 (Updates were rejected because the tip of your current branch is behind)

지원·2022년 5월 24일
1

Hello Error

목록 보기
1/2
post-thumbnail

git push 오류


commit 까지 완료하고 이제 github에 push 하려고 하는데 아래와 같은 오류가 뜬다.

1)

github 레파지토리 생성 시 readme.md 파일 생성여부란에 체크를 하면 생기는 오류이다.

레파지토리에는 있는 readme 파일이 원격에는 존재하지 않아서 나타나는 오류 같지만

사실은 더 정확히 말하면 readme.md 파일의 존재가 문제가 되는 것이 아니고,

원격 저장소에서 readme.md를 추가하는 커밋이 로컬 저장소의 커밋 로그에는 없기 때문이라고 한다.

(push 명령은 로컬 저장소의 commit 목록과 원격 저장소의 commit 목록을 비교한다.)

이를 해결하기 위해 git pull 을 진행해 주었더니 이번엔 아래와 같은 오류가 났다.

2)

두개의 commit 히스토리가 서로 관련이 없기 때문에 merge 할 수 없다는 뜻.

기본적으로 merge는 원격 저장소와 로컬 저장소가 공통으로 가지고 있는 commit지점이 존재해야 한다.

그 지점부터 병합을 시도하기 때문인데, 애초에 공통되는 commit이 없기때문에

pull 명령어를 사용할 수 없는 것이다.

이 때, pull 명령어에 옵션을 추가하여 강제로 push를 하는 방법으로 아래의 명령어를 작성한다.

git pull origin (branchname) --allow-unrelated-histories

3)

하지만 왜 또 같은 오류를 발생시키는 것인가

이럴 때엔 임시방편으로 "+" 옵션을 사용하여 해결이 가능하다고 한다.

git push -u origin +master

위와 같은 명령어를 작성하면 강제로 push가 된다.

push 문제는 해결됐지만 2번 명령어에도 같은 오류를 발생시킨 원인에 대해서는 이후에 알아봐야겠다.


ㅡ 참고 블로그

https://jobc.tistory.com/177

https://doozi316.github.io/errorlog/2019/09/30/error1/

profile
하루씩 내 자신 넘기⛰️

0개의 댓글