본문 바로가기
IT CHANNEL/GIT(HUB)

[GITHUB] error: src refspec master does not match any 해결하기 2021->2023[업로드 에러/PUSH 에러/ 깃허브 PUSH 안됨]

by TitanX 2021. 9. 2.

 

바야흐로 2021...년도 처음  GIT 사용 당시... 아래의 오류 과정을 겪었다.
이 때는 개발에 대한 기초지식이 너무 부족했다.

2023년이 된 지금 종종 방문자가 생기는 것을 느껴, 올바른 정보를 전달하고자 내용을 개정한다.
맨 아래 해결 방법이 있다.

 

 

 

2021 년도 해결방법(기록)

첫 커밋 오류 실패잡기(3일만에 성공)

우선 git push까지의 전반적인 과정의 코드이다.(뒷 부분에 다시 나온다)

echo "# -" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https:나의/깃허브/원격레포지토리.git    <- 경로는 개인의 것을 입력!
git push -u origin master

 

윈도우10 기반의 git push 실패 오류

문제 상황(현상)

  • error: src refspec master does not match any  (에러 발생)
  • git bash here에서 push해도 아무런 반응 없음.

마우스 우클릭을 눌러 local repository 를 만들기 쉽게해주는 git(윈도우)의 기본 시스템이다.

Git Bash Here를 누르면 이런 화면이 뜨게 되고 이곳에서 git push를 진행하려했다.

 

 

나는 여기서 git push가 안되어 몇 일을 고생했다.

 

git push -u origin master

를 입력하면

error: src refspec master does not match any

이런 에러가 떴다

 

저렇게만 git 을 다루는 줄 알고 이것저것 clone이니 pull 이니 다 해봤는데 안된 것.

(후...)

또 이상한게 여러번 다른 시도를 했을 때는 push를 해도 아무런 반응이 없었다.

(이미지 캡쳐는 못했다.. 얼떨결에 성공해 버려서.. 이전의 에러 메세지나 증상은 남겨두질 못했다.ㅠ)

-원인을 찾지 못했다. CS기초 지식과 git에 대해서 더 공부를 하면 그때 안전한 방법을 시도해서 원인을 밝혀 보고싶다.

 

 

해결방법

정말 별거 아니지만 엄청 뜻밖의 방법이다.

발상의 전환이랄까.. (원래 기본인데 내가 몰랐던 것 같다.)

 

 

 

 

 

local repository 로 사용중인 현재 의 폴더에 cmd를 입력해준다.

그럼 경로가 세팅이 되어있는 cmd 화면이 열리게 된다.

 

이곳에서 git push를 위한 전반적인 과정을 진행해주면 된다.

다음 명령어를 입력해주면 된다!

 

echo "# -" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https:나의/깃허브/원격레포지토리.git    <- 경로는 개인의 것을 입력!
git push -u origin master

이미 commit을 했는데 기억이 나지않는다면, 그냥 일단 commit을 해보는 게 낫다.

어차피 변동사항이 없으면 commit되는 것이 없어서, 오류를 불러오는 일은 없다.

 

 

위의 과정을 잘 진행했다면

아래와 같은 내용이 뜨는데

1. web 연결 관련된 내용?
2. token관련?내용(아마 암호화키 관한 내용이 아니었나 싶다.. 자세히 읽어보지 않아서 기억이 안난다..)​

 

여기서 '1'을 누르고 입력하면 된다. (그냥 1만 입력하면 된다.)

그럼 다음 창이 뜨면서 잘 업로드가 된 것을 확인 할 수 있다.

 

 

 

 

오래 시간을 허비한 것에 비해 너무 싱겁게 성공해서 찝찝하다.

아쉬운 점이 있다.

어쨋거나 push를 해서 업로드를 했다는 것은 큰 성공이지만

기존의 방법으로 업로드를 하지못한 원인을 알아내지 못한 것이다.

나중에 꼭 알아내고 싶다. 어떤게 꼬여있었고, 왜 push가 안된건지..

 

 

-----여기 까지가 2021년도 원글-----

 

해결방법 요약 (2023 ver.) 

 

  1. 현재 브랜치 확인: 먼저 현재 어떤 브랜치에 있는지 확인한다.
    git branch 명령어를 사용하여 현재 체크아웃된 브랜치를 확인

  2. 올바른 브랜치로 전환: 만약 잘못된 브랜치에 있다면, 올바른 브랜치로 전환한다.
    git checkout <브랜치 이름> 명령어 혹은, CLI 상에서 보여지는 브랜치 명으로 확인

  3. 브랜치 생성 및 푸시: 만약 원격 저장소에 푸시하려는 브랜치가 로컬에 없다면, 먼저 브랜치를 생성한 후 푸시한다
    git checkout -b <새 브랜치 이름>을 사용하여 새 브랜치를 생성하고,
    git push -u origin <새 브랜치 이름>으로 푸시


  4. 브랜치 이름 확인: 브랜치 이름이 올바른지 확인!! 오타나 대소문자가 문제가 되는 경우가 허다하다. 특히 초보 때는..ㅠ


  5. 원격 저장소 확인: 원격 저장소의 URL이 올바른지 확인한다
    git remote -v 명령을 사용하여 원격 저장소의 URL 상태를 확인