##はじめに
こちらは、私が毎度どうしようもないところで躓いて解決できず、時間がただ過ぎていく状況を改善するための救いようのない備忘録です。
ネット上の他の解決法を試してもダメだった場合、役に立てるかもしれません!
##環境
・Git - 2.31.1
##git pushでエラー!
git push
を実行すると、
! [rejected] main -> main (non-fast-forward)
というようにnon-fast-forward
とエラーが出てきます。
とりあえず、git pull origin main
を叩いてみます。すると今度はこんなメッセージが。
* branch main -> FETCH_HEAD
hint: Pulling without specifying how to reconcile divergent branches is
hint: discouraged. You can squelch this message by running one of the following
hint: commands sometime before 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: refusing to merge unrelated histories
色々解決方法が載っていますね。そして、その中でも気になるのが、一番下の
fatal: refusing to merge unrelated histories
です。どうやら無関係はヒストリーをもつものをマージしようとしていたみたいです。
##解決!
マージがうまくいかない場合は、オプションに--allow-unrelated-histories
を追加することで無関係でもマージできるようになります。
$ git merge --allow-unrelated-histories origin/main
これでOK!あとは、get status
で変更状況を確認して、変更があれば、git add <file>
、そしてgit commit -m <comment>
、最後にgit push origin main
でフィニッシュです。
##おわりに
今自分がどこまでやったか、頭の片隅に入れておきたいですね。