[每当我想执行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 repo的地步了,但是很快,所有这一切又开始发生了。
这发生在我身上,被接受的答案中的git reset --hard HEAD
并没有帮助。但是,运行spring stop
可以解决问题。我怀疑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 Build 2.9.20150624-每晚(带shell集成)
您无法检出Gemfile.lock,因为spring在后端运行,无法在开发环境中同步代码。如果要结帐,请先停止弹簧加工。您可以通过两种不同的方式停止弹簧。
弹簧停止
或者通过手动杀死在本地运行的spring进程,就像
ps -aef | grep spring
kill -9 pid
两者对我来说都很好。选择最适合您的!