Github push를 주려고 했는데 fetch first가 거절당했어요.

첫 번째 Qiita 투고


치졸한 글, 내용도 나왔다고 여겨지는데 따뜻한 시선으로 지켜주시면 기쁩니다.

제가 Github까지 푸시하고 싶을 때까지.


도중에 눈에 띄게 막힌 원인이 있기 때문에 아는 사람은 토하고 싶어한다.그럼, 가자, 마스.

루비온 레일스로 블로그를 쓰고 싶어요.


아무튼 이 두 손으로 어떤 웹 앱을 만들고 싶어서 빠르고 좌절되지 않는 Rails로 블로그를 만들기로 했습니다.
나는 그 과정에서 겪은 어려움을 이런 느낌으로 치타에 기록하고 싶다.
초보적인 지뢰가 이를 밟아 선배들에게 폐를 끼칠 것 같으니 지도와 채찍질을 많이 해 주십시오.
그럼, 다양한 마스를 날려보냅니다.
$ rails new blog
$ cd blog
$ git init
$ git add -A
$ git commit -m "Initialize repository"
Git에 관해서는 다른 기사에서 정리하고 싶은데, 한마디로'수중에 자료고도 있다'는 버전 관리 시스템입니다.
이곳은commit에서 $git init 제작한 로컬 저장소 (수중에 있는 저장소) 일 뿐이다.개인 개발이라 필요 없을 수도 있고 어차피 원격 저장소(공유된 저장소)에서push를 하고 싶어요.

제가 Github에 자료 창고를 만들었어요.



그래서 우선 Github에 원격 자료 라이브러리를 만들었습니다.
무료 회원이기 때문에 공개 설정은 Public이고,'README를 마음대로 만들 수 있다'는 항목도 검토했다.

원격 저장소에push 시도

$git remote add origin https://github.com/TaskEngineer/TaskWorksPortfolio
$git push origin master 
원격 저장소 정보를 추가하고push에 반영합니다.
보통 이렇게 하면 잘 돼요.

그리고 생각만 해도 차였어요.

! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘https://github.com/TaskEngineer/TaskWorksPortfolio’
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushin
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.
자세히 보면, 이 오류는 원격 (메모리 라이브러리) 에서pull에서push로 다른push 등이 있기 때문에 발생한 것이다.
그러나 원격 장치는 방금 만든 것입니다. 한 번도push가 없는데pull을 해야 합니다. 어떻게 된 일입니까?

해결편


아까 Github로 원격으로 할 때 자꾸 README를 시켰다고 생각했는데 사실 그 조작은commit이 한 번 한 것 같아요.
그래서 우선fetch의 오류 정보입니다.
pull은fetch+merge입니다. 하지만 여기는 즐길 생각이 없습니다. 확실히fetch→merge가 합니다.
$git fetch
$git merge origin/master
이렇게 하면 순조롭다.이런 초보적인 실수로 몇 시간 동안 고민했으니 장래에 생각날 거야...

참고 자료

  • https://stackoverflow.com/questions/20939648/issue-pushing-new-code-in-github
  • 좋은 웹페이지 즐겨찾기