반응형

 

각종 프로젝트를 맡게 되면서 더이상 이동식 디스크, 로컬 파일로 버전 관리가 벅차서 깃허브를 만들었다.

초창기 SW 개발 공부를 시작했을 때부터 지금까지의 자료를 정리하고 업로드 하는 일이 여간 복잡한게 아니었다!

(모든 것은 과거의 내가 자초한 것.. 이제부턴 미루지 말아야지...!!)

 


Git Hub 연결


git push <remote_name> <branch_name>

<remote_name> : myProject_git

<branch_name> : main

으로 하여 push 명령어를 입력했다.

 

git push myProject_git main
error: src refspec main does not match any
error: failed to push some refs to 'https://github.com/<user_name>/<repository_name>.git'

 

첫번째 에러가 떴다.

 

무슨 말인지 모르겠으니 검색했다.

기본 repository 이름을 master로 바꿨더니 성공했다는 글이 보였다.

 

시도...!

성공은 했지만 원인은 뭔지 모르는 찝찝한 상황...

 

내 기본 remote의 repository 이름은 main인데 master로의 push만 성공한다니

 

로컬 저장소 브랜치명을 확인하기 위해 

# git show-ref 명령어를 입력했다.

아.. master로 되어있다.

 

로컬 저장소 브랜치명을 master에서 main으로 바꿔보았다.

 git branch -m master main

또는 

git config --global init.defaultBranch main

 

 

main으로 잘 바뀌었다.

이제 다시 main에 push를 시도해보았다.

음.. 다른 에러가 발생했다!

 

에러가 fetch하라고 했으므로 fetch도 해보고 pull도 해봤지만 에러는 여전히 발생했다..

갈피를 못잡고 있다가.. 근본적인 원인을 발견했다.

 

처음 repository를 생성할 때, README.txt 파일을 자동으로 생성되게끔 만들었댔다!

그래서 로컬 repository와 remote repository가 일치하지 않아 발생된 에러였다.

이는 기존 데이터 손실을 막기 위해 push에서 에러가 발생한 것이었다,

즉, 애초에 동기화만 잘 해줬어도 끝났을 문제!

 

동기화

#git pull --rebase <repository_name><branch_name>

 

다시 push 시도!

 

음.. 이제 잘된다!

 

결론: 동기화를 잘 하자!

반응형

+ Recent posts