[git] push error (branch)

thezz9·2025년 2월 24일

에러 발생 상황

새로운 깃허브 레퍼지토리에 git push 시도할 때 에러 발생

git push origin main

에러 발생 원인

1️⃣ main branch가 존재하지 않거나 default로 설정되지 않은 경우
2️⃣ commit을 하지 않은 상태에서 push를 시도할 경우
3️⃣ local repository와 remote repository의 정보가 일치하지 않는 상황에서 push를 시도할 경우

1번 유형

(⭐참고) github repository를 생성할 때 Add a README file 옵션 체크 시
remote repository의 default branch가 자동 설정된다.

첫 번째로 branch 정보 확인부터 해보자.

git branch

다음으로 main branch 생성

git branch main(추가할 브랜치명)

다시 정보를 확인해 보면

이렇게 생성이 완료된 것을 볼 수 있다.

🔥 default branch 변경

git checkout main
git branch

아쉽게도 이 방법으론 해결하지 못했다.

2번 유형

commit은 당연히 했다.

3번 유형

pull을 시도한 뒤 정보가 불러와지는 것까지 확인 후 push를 해도 처음 사진과 같이 나온다.


찾아본 모든 해결 방법을 시도해 봐도 실패했다.

이것저것 시도해 보던 와중 이해가 안 되는 상황이 생겼다.
당시 내 github repository의 default branch는 자동 생성된 main 이었다.

git push origin main → 오류 발생 ❌
git push origin master → master 브랜치가 생성되면서 업로드된다? ✔️

master branch로 계속 업로드할 수도 있겠지만,
원인을 모르고 지나가기엔 찝찝하니 더 알아보자.


기존 1번 문제 해결 과정에서 해야 하는 설정이 하나 더 있었다.

git push origin master를 했을 땐 로컬에 있던 master 브랜치가
새롭게 원격에 생성되었기 때문에 푸시가 성공한 거였고,
1번 과정에서 단지 local default branch의 생성과 수정에서 끝나는 게 아니라
로컬과 원격저장소의 브랜치를 동기화 시켰어야 했다.

git branch -m master main // 로컬에서 master → main 변경
git fetch origin      // master 원격 저장소 정보 가져오기
git branch --set-upstream-to=origin/main main // 원격 main과 연결
git pull origin main    // 최신 내용 받아오기

그래도 push가 안 된다면?

git push --force origin main
// 로컬 main branch를 원격 main branch에 강제로 덮어씌우는 방법
profile
개발 취준생

1개의 댓글

comment-user-thumbnail
2025년 2월 27일

드디어 깃헙 시작했군요 ㄷㄷ

답글 달기