1. ホーム
  2. git

[解決済み] git が「commit your changes or stash them before you can merge」と言うのをどうすれば解決できますか?

2022-03-06 14:52:51

質問

ローカルマシンでいくつかの更新を行い、それをリモートリポジトリにプッシュしました。そして今、変更をサーバーにプルしようとすると、メッセージが表示されます。

error: Your local changes to the following files would be overwritten by merge:
wp-content/w3tc-config/master.php
Please, commit your changes or stash them before you can merge.

だから、走った。

git checkout -- wp-content/w3tc-config/master.php

というメッセージが表示され、もう一度試してみましたが、同じメッセージが表示されます。私が想定しているのは w3tc は、サーバー上の設定ファイルの何かを変更しました。ローカルコピーとリモートコピーのどちらがサーバーに行くかは気にせず(リモートがベストでしょう)、残りの変更(プラグインの更新)をマージできるようにしたいのです。

何かアイデアはありますか?

解決方法は?

ローカルで修正したものをマージすることができない。Gitは、潜在的に重要な変更を失うことからあなたを守ります。

3つのオプションがあります。

  • を使用して変更をコミットします。

    git commit -m "My message"
    
    
  • 隠しておく。

    スタッキングはスタックのようなもので、変更をプッシュすると、それを逆順にポップすることができます。

    スタッシュするには、次のように入力します。

    git stash
    
    

    マージを行い、スタッシュを引く。

    git stash pop
    
    
  • ローカルでの変更を破棄する

    を使って git reset --hard
    または git checkout -t -f remote/branch

    または: 特定のファイルに対するローカルの変更を破棄する

    使用 git checkout filename