본문 바로가기
개발 공부/Git

[지옥에서온git] 깃허브 저장소로 push할때 발생하는 비밀번호 틀렸다고 나오는 에러, failed to push some refs 에러

by 반달bear 2022. 8. 3.
반응형

 

유저 이름 입력하라고 해서 입력했고, 비밀번호 입력하라고 해서 입력했는데 자꾸 비밀번호가 expired 되었다는 얘기를 하며 

https://docs.github.com/en/get-started/getting-started-with-git/about-remote-repositories#cloning-with-https-urls

 

About remote repositories - GitHub Docs

About remote repositories A remote URL is Git's fancy way of saying "the place where your code is stored." That URL could be your repository on GitHub, or another user's fork, or even on a completely different server. You can only push to two types of URL

docs.github.com

 

를 참조하라는 말을 해서 들어가 보았더니 강의가 오래되어서 그런지 비밀번호가 그 '비밀번호'가 아니고 personal access tokens를 만들어야 한다는 걸 알게 되었습니다.

 

그래서 문서를 따라 토큰을 발급 받아보았습니다.

1. 우측 상단에 있는 내 아이콘 누른 후 settings로 들어가 줍니다.

2.좌측에 있는 여러 목록중에 밑으로 쭉 내리다 보면 developer settings가 있는데 들어가줍니다.

 

3. personal access token을 누른후 generate token 선택. 체크박스는 전부 체크한 이후 generate 해줍니다.

 

그렇게 비밀번호 복사해서 입력했더니 들어가지긴 하는데... 

 

또 에러!!!!!

 

 

 

이번에는

 

failed to push some refs 에러가 떴습니다.

찾아보니 github에 나에게 없는 파일이 있고 내 파일을 push하려고 하면 생기는 오류라고 합니다.

저장소를 만들때 READ.me를 추가했는데 그거 때문인가....(울고싶다)

 

 

 

+

결국 찾았습니다!! 강의에 나오는 github의 메인 branch는 master인데 저의 깃헙 메인 branch는 main이기에 생기는 오류였습니다!!!!

 

처음 READ.ME를 만들고 시작했더니 Quick setup이 보이질 않아서 강의만 따라가다 발생한 일이었네요.

 

깃허브에서 메인 branch 이름을 바꾸려는 시도를 해봤지만 뭐가 꼬이는지 잘 되지 않아서 repository를 제거 후 다시 생성  Quick setup을 따라갔습니다. 

 

 

깃허브 branch를 아무것도 건드리지 않았으면 아래의 코드를 그대로 따라하시면 됩니다.

git remote add origin https://github.com/Maker-H/study-git-GitFTH.git
git branch -M main
git push -u origin main

 

 

git branch -M main이 궁금해서 찾아보니

내 메인 branch였던 master을 main으로 바꾸는 작업을 해주는 명령어였나봅니다. 이전에는 각 branch들의 이름이 달라서 merge conflict가 났던 것 같고요. 

사실 글을 적기 이전 git에서 branch 이름을 master로 바꾼 이후에 설정까지 해준거 같은데 README.me 파일은 그 전에 있던 main branch에 계속 있어서 오류가 난게 아닐까 추측하고 있습니다.

 

 

이렇게 해도 또 에러가 나면

# origin은 내가 설정한 원격 저장소 이름
# main은 원격저장소의 branch 이름
git push -u origin +main

main 앞에 +를 붙여줍니다. 그럼 해결되네요

실습하려고 삭제하고 다시 만들어서 하니까 또 에러가 납니다. 왜인지 모르겠어요... + 붙이니까 일단 해결은 되네요

 

에러가 나는 이유를 찾은 것 같습니다. 위에서 깃허브에 있는 커밋이랑 local에 있는 커밋이 일치하지 않아서 발생하는 오류일거라고 추측했었는데 그게 맞아요. 다만 Pull을 해도 merge conflict로 에러가 나고 push를 해도 merge conflict로 에러가 나는데 +(branch)를 하면 강제로 오버라이드가 되는 듯합니다.

 

fast-foward 방식으로 merge되는지 이전 버전으로 돌아가면서 동기화가 되어버려요. 원격저장소와 내 로컬 저장소 간에 merge conflict를 해결할 수 있는 방식을 알면 근본적인 해결이 가능할 것도 같은데 아직까지 그 정도 실력은 아니라서 어렵네요...ㅎㅎ

 

 

++추가 

reset 커맨드를 사용한 이후에 failed to push 에러가 떴다면 이 링크를 참고해주세요!

[지옥에서온git] 이제 익숙한 에러 error: failed to push some refs to 원인 분석 그리고 드디어 근본적 해결 (tistory.com)

반응형

댓글