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/
'git' 카테고리의 다른 글
[Git] 오류 fatel remote error CAPTCHA required (0) | 2024.01.03 |
---|---|
[git] stash를 사용하여 수정 내역 스택에 저장하기 (0) | 2023.11.14 |
[git] 명령어 모음(commit, push, pull, fetch 등등) (0) | 2023.11.07 |
[git]Your branch is up-to-date with 'origin/master'. Changes not staged for commit: (0) | 2018.01.03 |