🪸
github でThere isn't anything to compare. でPRとかができないとき
初歩的な内容ですが、毎回やらかして調べるのでメモしたい。
githubにリポジトリだけ作って、ローカルでgit init
してからremote指定してpushする。そのあとmainにmergeしようとPRを出してするとこうなる。
解決法
local側のgitで次を実行
git checkout master
git branch main master -f
git checkout main
git push origin main -f
原因
gitってソースの差分を足していく方式なので、historyが同じじゃないと比較ができない。 最初の方法でmergeしようとすると、ローカルのmasterとリモートのmainでのつながりはないので、比較しようとしてもそもそもできないよ。という話らしい。
解決方法も強制的にbranch名を変えて、比較とかもういいから強制的にmainを置き換えている。
追記: githubのデフォルトブランチ名は現在mainで、ローカルのデフォルトブランチ名はmasterとなっているので、githubにpushしたときにmasterのブランチが作られてしまうことが原因らしいです。
ほんとだ、上の画像でもmasterからmainにマージしようとしてる。
ここが分かりやすいです。
元の解決法はここ。
内緒話
ふんわりとしか理解してないので 間違ってたらすみません。
Discussion