git pull したときに、error: Your local changes to the following files would be overwritten by merge: routes/web.phpと出る時。
Laravel9のプロジェクトを進めてローカル環境での開発にきりが付いたので、git pushしてリモートリポジトリを更新し、本番環境のローカルリポジトリにgit pullしたときにエラーが出た。
サイトで検索すると、いろいろな方法が出てくる。
まず出てきたのがstashを使ってエラーの出ているファイルを一旦対比させておく方法。
git stash
git stash を使ってみたが、特に一次退避するファイルもないよと表示された。
次に試したのが、
git add .
git commit -m "some coments"
git push origin master
これですべてのファイルをもう一度pushしてみるということだ。
しかし先ほどpushしたので、もちろん「your branch is clear」と出て、きれいさっぱりpushできている。
次にgit treeを確認してみた。
しかし、特にブランチも切っていなかったし、マージする内容もなかった。HEADもリモートリポジトリを指しており、正常にpushできている。
悩みに悩んだ結果、以下のサイトを見つけた。
git pull を強制し、リモートでローカルを上書きする方法
https://www-creators.com/archives/1097
この記事では
// 1) リモートの最新を取ってきておいて・・
$ git fetch origin master
// 2) ローカルのmasterを、リモート追跡のmasterに強制的に合わせる!
$ git reset --hard origin/master
という方法が書かれていた。
これを本番環境で実行すると無事pullすることができ、正常にホームページも動作した。
めでたしめでたし。