merge: origin - not something we can merge エラーが出たときの対処

問題

いつも通り開発をしていて、開発中のブランチへmain (master) ブランチの変更を取り込もうとしたときの話です。

merge: origin - not something we can merge というエラーが表示されてマージできませんでした。

$ git merge origin main
merge: origin - not something we can merge

試したこと

検索して出てくるタイポ、スペルミスではありませんでした。

「マージされるブランチがリモートにあってローカルにないから起きる」という記事もありましたが、会派中のブランチもmainブランチも最新をpullしてきていたので多分問題ない気がします。

マージされる側のブランチがリモートにあり、ローカルにはなかったのでマージできなかっただけだった。 https://qiita.com/kanatano_mirai/items/1480a73ca25b87ca1bd8

解決策

結論としてはマージ元とマージ先のブランチを切り替えた上で git merge origin main ではなく git merge main したらうまくいきました。

$ git checkout main
Switched to branch 'main'

$ git checkout sample
Switched to branch 'sample'

$ git merge main
# successed!

余談

マージ元とマージ先のブランチを切り替えても git merge origin main は動いてませんでした。

git merge origin mainは成功した1度しか実行していないので、もしかすると最初からoriginを省略していれば動いた説はあります。

いつかまた再現したら確認しようと思います。

参考

https://www.binarydevelop.com/article/gitnot-something-we-can-merge-9042

https://stackoverflow.com/questions/16862933/how-to-resolve-gits-not-something-we-can-merge-error