🪸

github でThere isn't anything to compare. でPRとかができないとき

2022/09/27に公開

初歩的な内容ですが、毎回やらかして調べるのでメモしたい。

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にマージしようとしてる。
ここが分かりやすいです。
https://qiita.com/shular/items/d88010e13efecb822d79

元の解決法はここ。
https://stackoverflow.com/questions/23344320/there-isnt-anything-to-compare-nothing-to-compare-branches-are-entirely-diffe

内緒話

ふんわりとしか理解してないので 間違ってたらすみません。

Discussion