Gemfile.lock
を実行するか、新しいブランチをチェックアウトするたびに、git pull
で次のエラーが発生します。
error: Your local changes to the following files would be overwritten by merge:
Gemfile.lock
Please, commit your changes or stash them before you can merge.
Aborting
問題は、それを修正する方法がわからないことです。
git checkout -- Gemfile.lock
を実行して変更を破棄しようとしましたが、これも機能しません。ローカルの変更はそのまま残ります。Gemfile.lock
の変更をコミットしようとしましたが、それも機能しません。変更は残っています!何をする必要がありますか?私は新しいgitリポジトリのクローンを作成するところまで行きましたが、すぐに、すべてが再び起こり始めます。
これは私に起こり、受け入れられた回答のgit reset --hard HEAD
は役に立ちませんでした。ただし、spring stop
を実行するとうまくいきました。 Springが変更されたときはいつでも、Springがファイルを書き換えて、Spring経由で実行されているコードと同期していることを確認していると思います。
以下を実行した後、ブランチをプルしてチェックアウトすることができました。
git checkout Gemfile.lock
git reset --hard HEAD
このソリューションが機能する理由と方法がわかりません。説明は大歓迎です。
私の場合、gitが変更されたGemfile.lockを検出したのは、ファイルの下部にBUNDLED WITH 1.10.3
。バンドラーを更新した後gem update bundler
、Gemfile.lockを再生成してコミットすると、変更されたものとしてgitに表示されなくなりました。
gitバージョン2.2.1、Mac OSXバージョン10.10.4、iTerm2ビルド2.9.20150624-nightly(w/Shell統合)
Springがバックエンドで実行され、開発環境でコードを同期しているため、Gemfile.lockをチェックアウトできません。チェックアウトする場合は、最初にスプリングプロセスを停止します。春を止める方法は2つあります。
春の停止
または、ローカルで実行されている春のプロセスを手動で強制終了することにより、
ps -aef | grep spring
kill -9 pid
どちらも良さそうです。あなたにとってより良いものを選んでください!