每当我想要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,但很快,所有这一切又开始了。
答案 0 :(得分:78)
这件事发生在我身上,git reset --hard HEAD
从接受的答案中没有帮助。但是,运行spring stop
就可以了。我怀疑spring会在修改文件时重写文件,以确保它与通过spring运行的代码同步。
答案 1 :(得分:8)
完成以下操作后,我又能够拉出并检查分支机构。
git checkout Gemfile.lock
git reset --hard HEAD
我不确定这个解决方案为何以及如何运作。欢迎解释。
git在我的情况下检测到Gemfile.lock被修改的原因是文件的底部有BUNDLED WITH 1.10.3
。更新bundler gem update bundler
,重新生成并提交Gemfile.lock后,它停止在git中显示为已修改。
git版本2.2.1,Mac OSX版本10.10.4,iTerm2 Build 2.9.20150624-nightly(带有shell集成)
答案 2 :(得分:0)
您无法检出Gemfile.lock,因为spring在后端运行,无法在开发环境中同步代码。如果要结帐,请先停止弹簧加工。您可以通过两种不同的方式停止弹簧。
弹簧停止
或者通过手动终止在本地运行的spring进程,就像
ps -aef | grep spring
kill -9 pid
两个对我来说都很好。选择最适合您的选择!