githubへの再設定 pushできない問題について
今日はgithubへpushしようとしていたところ何故かできない。。。と試行錯誤したことを記録していきます。
以下エラーメッセージ
To GitHub登録先
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘GitHub登録先’
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: ‘git pull …’) before pushing again.
hint: See the ‘Note about fast-forwards’ in ‘git push –help’ for details.
これはpushした時にでたエラー内容なんですが、正直英語多すぎてそれだけでちょっと敬遠しがちです。
そもそもどんな状況でエラーが出たか?
今までポートフォリオを作成してリモートリポジトリに上げていたが、railsのバージョンを6から5に落とすことにした。
理由としては自分の環境では一度製作物を作っていてrailsのバージョンが教材と違ったりでうまくいかないことが多いのでバージョンを落として新しいディレクトリ上で再度製作物を1から作り直し始めた。(主にjqueryやその他gemの導入時に様々な書き方が違い混乱していたため。)
とりあえず今の制作物はバージョンを5に下げて行うことに
というわけで今回railsを6から5に落としての初のcommit,pushになるわけであったが上記エラーが出ている
ググってみるとどうやら同じエラーが出ている方の解決策として
git fetch をするといいとのこと
git fetchってなんだっけ?
これで概要を勉強!リモートリポジトリから内容をこちらに持ってきてそこから再度pushするといいとのこと
早速やってみるも、が駄目!! 他の記述でgit initすると解決すると書いてあったのでやってみるも駄目!!
以下エラー内容
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch –set-upstream-to=origin/<branch> master
上記参照しましたが状況が違うので解決できず
イメージとしてgitリポジトリに違うディレクトリで作ったものをpushしようとすると全く違うアプリがpushされようとしていると判断されてgitからエラーが出てしまう。
なのでpullしてくださいと言われていたがそもそも違うものが作られていると認識されているのでpullも拒否される。
そこでマージしてくださいと出るがそれも違うものが作られていると認識されているので拒否される
完全に堂々巡りになりどうしようもなくなっていたのでメンターの方に助けを求めると
『リモートリポジトリを新しく作りましょう!』
まさかの秒で解決でした 2時間くらい格闘していたんだが。。
無理やりやる方法もあるらしいがメリットがないので素直に新しいリモートリポジトリを作りそちらに1からpushした方が良いとのことだったので新しく作成した。
そもそもアプリごとにリポジトリを作るべきとのこと
かなり寄り道をしたが新しくリモートリポジトリを作ることで無事pushできました 少しgitの知識も深まったしよしとします
なかなか同じケースのエラーが出て解決できない方はいないと思いますが参考になれば是非!!