git error:src refspec master does not match any 에러 해결법

git을 이용해서 소스 관리를 할 수 있습니다. 많이들 사용하실 텐데요. 가끔 노트북에 디렉토리를 만들고 git과 씽크를 해야하는 경우가 있습니다. 그런데 이때 이미 소스코드가 있는 저장소 내용을 노트북의 소스로 대체해야 하는 경우가 있습니다. 위 제목에 나와 있는 에러는 무작정 로컬 디렉토리를 저장소로 추가하고 원격지의 저장소에 push 요청을 보냈을때 나오는 에러입니다. 여러번 하거나 강제로 push 요청을 해도 같은 에러가 계속 나옵니다.

git push --force origin master

브랜치를 다시 만들고 해봐도 마찬가지고 여러가지 해결책이 적힌 블로그 글을 참고해도 여전히 해결이 되지 않았다.

로컬에서 이미 개발을 어느 정도 진행한 상태인데 github에 있는 저장소를 사용하고 싶은 경우입니다. (이런 경우는 드물겠지만 github에 있는 저장소는 날리고 로컬에 있는 디렉토리로 대체하는 경우입니다) 하나 하나 순서대로 살펴보도록 하겠습니다. 먼저 작업중인 로컬 폴더를 git으로 관리해주기 위한 기본 명령어입니다.

git init

위 명령어를 입력하면 작업중인 디렉토리에 “.git”이라는 디렉토리가 하나 생깁니다. 만약 로컬 디렉토리를 git에서 사용하고 싶지 않다면 어떻게 해야 할까요? (변덕이 …) 그때는 생성던 “.git” 디렉토리를 지워주기만 하면 됩니다.

rm -rf .git

다시 git init 으로 초기화를 해줍니다. 그런 다음 소스 코드 변경 사항을 추가해 줍니다.

git add .

지금까지 작업한 모든 소스들이 로컬 저장소에 추가 됩니다. 이제 커밋을 해줍니다. 커밋은 TV 프로그램에서 슬레이트를 쳐서 프로그램의 중간 중간 끊어서 가듯이 저장소에 지금까지 한 작업이 대략 어떤 내용이라는 것을 기록해 놓는 것을 말한다고 이해하시면 될것 같습니다.

git commit -m "새로운 프로그램, 커밋 #001"

이제 원격지의 저장소와 연결을 해줍니다. 이때 자신의 git 아이디와 저장소명을 정확하게 지정해 줘야 합니다.

git remote add [email protected]:USERNAME/REPOSITORY.git

이제 최종적으로 파일을 저장소에 올려보겠습니다.

git push -u origin master

이상 로컬 디렉토리와 원격 저장소를 git을 이용해서 관리하는 방법에 대해서 살펴봤습니다. git에 대해서 아직 많은 이해가 부족해서 다양한 경우의 수에 대해서는 많이 알지 못하지만 제가 만난 에러와 같은 에러를 만나신 분들께 도움이 되면 좋겠습니다.

참고자료

https://docs.github.com/en/get-started/getting-started-with-git/managing-remote-repositories

http://minsone.github.io/git/github-managing-remotes-adding-a-remote

Leave a Comment