初めに
どうも、gitを触り始めて一週間程度の初心者です。いろいろと試しているのですが往々にして詰んでいます;;
今回はちょっと解決に長い時間がかかった詰みを共有します。何せqiitaへのfirst commitなので甘いところがあったりするかもしれません。ご容赦ください。
状況
gitでリモートリポジトリにpushしたい。branchはdefaultのmainと新たにつくったdevelopがあるが、mainにのみpushすることができない。pushしようとするとエラーが出る。
$ git push origin main
error: failed to push some refs to URL
やったこと
1.よくわからないけどpullしてみた
エラーをググってみると以下の記事がヒットした。
【git】error: failed to push some refs to "URL"のエラー対処法
まずはこの記事の①git pull origin developをそのまま実行した。するとエラーみたいなのが返ってきた。
$ git pull origin main
hint: You have divergent branches and need to specify how to reconcile them.
hint: You can do so by running one of the following commands sometime before
hint: your next pull:
hint:
hint: git config pull.rebase false # merge (the default strategy)
hint: git config pull.rebase true # rebase
hint: git config pull.ff only # fast-forward only
hint:
hint: You can replace "git config" with "git config --global" to set a default
hint: preference for all repositories. You can also pass --rebase, --no-rebase,
hint: or --ff-only on the command line to override the configured default per
hint: invocation.
fatal: Need to specify how to reconcile divergent branches.
ちょっと何を言ってるのか、今の僕にはワカラナイなぁ、、、
この路線は一回撤退しました。
2.同じリモートリポジトリに強制pushしてみた
先ほどの記事に強制pushが最終手段としてある(おすすめはしない)とあったので、これを実行。しかし何も起きなかった、、、
3.リモートリポジトリを変更してみたうえで強制pushしてみた
強い人たちに相談したところ、リモートリポジトリを変更するのが良いとのこと。これを試しました。記事はこちらをご参考ください。gitのremote urlを変更する(レポジトリ移行時)
この上で強制push。うまくいったようです。
$ git push -f origin main
Total 0 (delta 0), reused 0 (delta 0), pack-reused 0
To github.com:自分のurl
+ 1df1919...ee9f058 main -> main (forced update)
考えられる原因
リポジトリの名前を作業中にmasterからmainに変更したことが、考えられる唯一の私の罪です。皆さんも気を付けてね。