28

無論何時我想要執行git pull或簽出新分支,我都會持續出現以下錯誤:Gemfile.lockgit和Gemfile.lock出現問題

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

Pavan:不要,存儲不起作用。我運行'git stash',並且Gemfile.lock只是神奇地呆在那裏:/ – grautur

+0

在未跟蹤的文件或修改的文件下? – Pavan

+0

Pavan:在修改過的文件下。 – grautur

回答

8

完成以下操作後,我可以再次取出分支。

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,夜間(W /殼一體化)

+0

解決了我的問題:) –

68

這發生在我和git reset --hard HEAD從公認的答案沒有幫助。然而,運行spring stop做了伎倆。我懷疑spring會在修改文件時重寫它,以確保它與通過spring運行的代碼同步。

+0

這個給我修好了,謝謝 –

+1

謝謝,先生!爲我節省了很多頭痛! – mrodrigues

+1

春天! %$#@%@ – Mirror318