用git和Gemfile.lock引起麻烦

gra*_*tur 35 git ruby-on-rails merge-conflict-resolution gemfile gemfile.lock

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
Run Code Online (Sandbox Code Playgroud)

问题是我无法弄清楚如何解决它.

  • 存储文件不起作用 - 本地更改只是因为某些原因而停留在那里.
  • 我也尝试过运行git checkout -- Gemfile.lock以丢弃这些更改,但这也不起作用 - 本地更改只是停留在那里.
  • 我也尝试过创建一个新的分支并将Gemfile.lock更改提交给该分支......但这也不起作用.变化仍然存在!

我需要做什么?我到目前为止只是克隆了一个新的git repo,但很快,所有这一切又开始了.

Tri*_*ick 81

这件事发生在我身上,并且git reset --hard HEAD从接受的答案中没有帮助.但是,跑步spring stop就行了.我怀疑spring会在修改文件时重写文件,以确保它与通过spring运行的代码同步.

  • 谢谢你,先生!省了我很多头痛! (2认同)

the*_*ted 9

完成以下操作后,我能够再次拉出并检查分支机构.

git checkout Gemfile.lock
git reset --hard HEAD
Run Code Online (Sandbox Code Playgroud)

我不确定这个解决方案为何以及如何运作.欢迎解释.

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集成)