Git: 초기 `push/pull` 오류 해결 정리(Windows Git Bash)

도은호·2025년 10월 15일

terraform

목록 보기
32/32

작업 경로: E:\sources\terraform_code
원격: origin = github.com:jsh0911/terraform_code.git
기본 브랜치: main


1) 문제 증상

  • git push origin +mainsrc refspec main does not match any

    • 원인: 로컬 main커밋이 하나도 없는(unborn) 상태.
  • git pullThere is no tracking information for the current branch

    • 원인: 로컬 main어떤 원격 브랜치를 추적할지(업스트림) 미설정.

2) 해결 흐름

2-1. 원격에서 먼저 내려받기(업스트림 없이 일회성으로)

git pull origin main
  • 업스트림이 없어도 원격/브랜치 명시로 바로 가져올 수 있음.
  • 폴더에 파일이 생성되어 원격 내용이 내려와야 정상.

2-2. 업스트림(추적 브랜치) 설정

git branch -u origin/main
  • 이제부터는 git pull/git push만으로 동작.

2-3. 설정 확인

git branch -vv
# 예) * main 4961c81 [origin/main] 20250930
  • 대괄호의 [origin/main] 표기가 보이면 업스트림 OK.

3) 원격 브랜치 표시가 두 개 보이는 이유

git branch -r
# origin/HEAD -> origin/main   ← 원격의 '기본 브랜치'를 가리키는 심볼릭 포인터
# origin/main                   ← 실제 원격 추적 브랜치
  • 정상입니다. 작업에는 영향 없습니다.

4) 이후 일반 워크플로우

# 최신 반영
git pull --rebase

# 변경사항 커밋
git add .
git commit -m "메시지"

# 업로드
git push

5) (선택) 편의 설정

git config --global pull.rebase true   # pull 시 기본 rebase
git config --global push.default simple
git config --global fetch.prune true   # fetch 시 불필요한 원격 브랜치 정리

6) 로컬 변경이 먼저 생겼던 경우(참고용)

로컬에 수정/새 파일이 있어서 pull에 방해될 때:

git stash -u                 # 변경 임시 보관
git fetch origin --prune
git checkout -B main origin/main
git branch -u origin/main
git stash pop                # 보관분 적용(충돌 시 해결 후 add/rebase --continue)

7) 빠른 트러블슈팅 체크리스트

  • fatal: the requested upstream branch 'origin/main' does not exist

    • git branch -r 로 원격 브랜치 이름 확인(예: masterorigin/master로 설정).
  • src refspec main does not match any

    • 로컬 브랜치에 커밋이 없을 때 발생. 우선 원격을 pull 하거나 첫 커밋 후 push.
  • detached HEAD 상태로 내려왔을 때

    git switch -c main --track origin/main
profile
`•.¸¸.•´´¯`••._.• 🎀 𝒸𝓇𝒶𝓏𝓎 𝓅𝓈𝓎𝒸𝒽💞𝓅𝒶𝓉𝒽 🎀 •._.••`¯´´•.¸¸.•`

0개의 댓글