본문 바로가기
git

[git]error: failed to push some refs to

by Junk_Seo 2018. 1. 8.
반응형

git error: failed to push some refs to...

이번에 git 저장소를 새로 만들어서 remote 저장소와 local 저장소를 연결하려는데 연결한 다음 

git push --set-upstream origin master

명령어를 치면 다음과 같은 error가 발생하더라...

 

 

도대체 무슨 이유로 error가 발생하는지 몰라서 고생고생 하면서 검색해 본 결과...

github에서 remote 저장소를 만들면서 default로 생성한 README.rd 파일 때문이더라...

그러니깐 github에서 README파일을 생성하면서 remote 저장소를 만들면 자동으로 commit이 되는데 이 commit 내용이 remote에는 있지만 local에는 없기 때문에 둘을 연결할 수 없다는 것이다.

즉, push는 remote 저장소의 commit 목록과 local 저장소의 commit 목록을 비교하여 remote 저장소의 마지막 commit id와 동일한 commit id를 가진 local 저장소의 commit 시점을 찾아낸 뒤 둘을 연결하는데, 이를 찾을 수 없기 때문에 발생하는 문제이다.

 

해결하는 방법으로는 

1. 원격 저장소를 삭제하고 README 파일 없이 다시 만든다.

2. fetch or pull 명령으로 원격 저장소의 마지막 commit을 local 저장소 commit 로그의 맨 앞으로 받아와야 한다.

 

이렇게 두 가지 방식이 있는데, 두 번째 방식을 사용하기 위해 pull 명령을 하면

이렇게 또 error가 발생한다.

음... 긴 설명은 포기하고 remote 저장소와 local 저장소에 연결되는 공통된 commit point가 없다는 내용이란다...

 

따라서 그냥 clone을 통해서 원격 저장소의 내용을 복제해 오는 것이 가장 간단하다.

 

 

****추가****

몇 가지 실험을 통해서 remote 저장소에 README파일을 생성하고 local 저장소를 만들고 어떠한 commit도 없이 remote와 local을 연결하고

git pull origin HEAD 

명령을 하고 

git push --set-upstream origin master 

명령을 하면 제대로 연결이 되긴 하는 것 같다.

 

출처 : https://huusz.github.io/2017/Git/GIT/01.git-connect-github/

반응형