gitで「error: Your local changes to the following files would be overwritten by merge:」の対処法

gitで「error: Your local changes to the following files would be overwritten by merge:」の対処法

369 回閲覧されました

みなさんこんにちは、jonioです。

本番環境で初めて「git pull origin master」をしたら「error: Your local changes to the following files would be overwritten by merge:」のエラーが出て相当苦労しました。

初めて見たエラーで解決方法が分からなくて先輩に質問してすぐ解決できたので次に同じことをする時にすぐ対処できるようにメモとしてこの記事を残します。

エラー内容

下記でした。

From home/ec2-user/プロジェクト
 * branch              master     -> FETCH_HEAD
error: Your local changes to the following files would be overwritten by merge:
    config/Migrations/schema-dump-default.lock
Please commit your changes or stash them before you merge.
error: The following untracked working tree files would be overwritten by merge:

意味は「マージによってschema-dump-default.lockが上書きされているから変更をコミットするかマージする前にスタッシュして」という意味です。

この時プッシュは終わっていて変更点はなくてスタッシュする内容もありませんでした。

解決方法

先輩から「git statusはしましたか?」と聞かれたのでやったら下記の表示になりました。

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        composer.phar
nothing added to commit  but untracked files present (use "git add" to track)

これを読む限り「composer.pharが追跡されていないファイルがある、push元にはcomposer.pharがなくて本番にはcomposer.pharがあるからcomposer.pharをコミットして」ってことですよね。

本番で「git status」を叩くと本番にあるファイルを確認するのでローカルと本番のファイルの差分を調べることができるみたいです。

なぜかローカルにはcomposer.pharがなくて本番にはcomposer.pharがあったのですが必要なかったので削除したらうまくいきました。