본문 바로가기

etc.

[Git] "! [rejected] master -> master (fetch first)" / " ! [rejected] master -> master (none-fast-forward)" / "error: src refspec master does not match any" 에러 해결

반응형

fetch first

! [rejected] master -> master (fetch first) 
error: failed to push some refs to 'https://github.com/~/~.git'

 

위 에러가 발생하였을 때는, 원격 저장소와 로컬 저장소가 달라져 

기존 데이터가 손실될 수 있어 발생하는 에러이다

 

이 때는 다음과 같이 해결한다

 

  1. git pull 하여 다시 init, remote 하고 push 한다
  2. `git push origin +master` 명령어로 강제 push 시킨다 (기존 데이터 손실 가능)

non-fast-forward

! [rejected] master -> master (non-fast-forward) 
error: failed to push some refs to 'https://github.com/~/~.git'

 

위 에러 역시 위와 비슷한 경우로, 다음과 같이 해결한다

 

  1. git pull orgin master --allowed-unrelated-histories 로 원격 저장소와 로컬 저장소의 병합을 허용하는 pull을 한 뒤, push 한다
  2. `git push origin +master` 명령어로 강제 push 시킨다 (기존 데이터 손실 가능)

 


master does not match

(https://velog.io/@kimiszero/github-src-refspec-master-does-not-match-any-%ED%95%B4%EA%B2%B0%EB%B0%A9%EB%B2%95)

 

1. 이는 init 후에 한 번도 commit이 없는 상태에서 push를 해서 생기는 에러이다

다음과 같이 init과 commit, push를 차례대로 시도한다

 

git init
git add .
git commit -m "message"
git remote add origin "github.com/your_ropo.git"
git push -u origin master

 

2. 이는 공동작업자 등의 이유로 master 브랜치가 존재하지 않기 때문에 생긴 에러이다

다음과 같이 마스터 브랜치를 새로 생성한 뒤 master 브랜치 이동 후 push를 한다

 

git checkout -b 'master'
git push origin master
반응형