git pull や git push できなくなったとき

2020/08/30

git pull や git push できなくなったとき、ブランチの間違いやファイルがコンフリクトしている可能性があります。

git pull エラー


$ git pull origin master
warning: Pulling without specifying how to reconcile divergent branches is
discouraged. You can squelch this message by running one of the following
commands sometime before your next pull:
...

git pull は fetch と merge を両方実行しているので、コンフリクトが発生するとエラーになります。


$ git fetch
$ git merge origin/master

git push エラー


$ git push origin master
...
fatal: refusing to merge unrelated histories
...

マージを実行

マージを実行するとコンフリクトしています


$ git merge --allow-unrelated-histories origin/master
CONFLICT (add/add): Merge conflict in README.md
Auto-merging README.md
CONFLICT (add/add): Merge conflict in .gitignore
Auto-merging .gitignore
Automatic merge failed; fix conflicts and then commit the result.

コンフリクトファイルを修正して、 commit & push します。


$ git add.
$ git commit -m 'confrict'
$ git push -u origin master

-u は --set-upstream の短縮形です。