Yuki Matsumoto

To be engneer soon / Ruby on Rails

GitHubへのpushが「fetch first」と表示されてrejectedとなったときの対処

2019-02-08 Yuki Matsumoto学習

git pushした時にエラーが発生した場合の対処方法

Gatsbyのブログを作成してた時にまだまだ慣れないGitを使って変更内容をGithubにアップしてるのだが、git pushした際にエラーが発生した。

! [rejected] master -> master (fetch first)
error: failed to push some refs to ‘https://github.com/WakkyFree/binarycutter’
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.

原因はリモートリポジトリーで変更した内容がローカルに反映されていないため、pushができない。
そのため、メッセージに書いてある通りfetchを実行する

git fetch

変更を適用するためにmergeを実行

git merge origin/master

また、エラーが発生

fatal: refusing to merge unrelated histories

調べてみると、どうやら無関係なヒストリをもつ2つのブランチはマージができないらしい。
そのため、上記をmergeするには-allow-unrelated-historiesというコマンドが必要らしい

git merge --allow-unrelated-histories origin/masterを実行

うまくいったと思ったが、なんとさらなるエラーが発生する

Auto-merging config.js
CONFLICT (add/add): Merge conflict in config.js
Automatic merge failed; fix conflicts and then commit the result.
matsumotoyukinoMacBook-Pro:blog mat

うむうむ。どうやらコンフリクトを起こしてるらしい。
git statsuでステータスを確認すると原因が出てきた

On branch master
You have unmerged paths.
  (fix conflicts and run "git commit")
  (use "git merge --abort" to abort the merge)

Changes to be committed:

	new file:   content/posts/2019-02-02-test.md
	new file:   "content/posts/2019-02-02-\343\201\223\343\202\214\343\201\257\343\203\206\343\202\271\343\203\210\343\201\240\343\202\210\343\203\274.md"

Unmerged paths:
  (use "git add <file>..." to mark resolution)

	both added:      config.js

config.jsのファイルがリモートとローカルでマージされていないのでaddしろと出てきた

言われた通り以下を実行

  1. git add config.js
  2. git commit -m "2nd commit"

念のため、git statusで確認してcommitができてることを確認 そして、logを確認したが問題なさそうだった

最後に変更内容をリモートにpush

git push origin master

問題なくpushが完了した

この一通りのエラーを通してググったことが功を奏したのかだいぶgitについて理解できた気がする
急がば回れとはいったもんですね〜