Git pull error:合并时将覆盖对以下文件的本地更改:

时间:2014-08-31 23:13:06

标签: git bitbucket

我正试图从远程分支中提取更改,但收到的错误没有意义

当我做的时候

git pull

我回来了

error: Your local changes to the following files would be overwritten by merge:
file/name/path
some/more/filenamepath
Please, commit your changes or stash them before you can merge.
Aborting

问题是我没有需要提交的更改 当我做  git status

# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 7 different commits each, respectively.
#
nothing to commit (working directory clean)

there are no working changes

我已尝试git reset --hard HEAD,但这没有帮助

任何想法?

文件位于NFS文件系统上,可能与文件系统有关。 这是在OSX上

由于


更新: 这个问题必须与NFS有关,因为当我去原始源并从那里做git pull一切正常,它修复了这个实例,但仍然不确定它为什么会导致NFS问题。

5 个答案:

答案 0 :(得分:23)

我有同样的问题,fetch / rebase的答案对我不起作用。这就是我解决它的方法:

我删除了导致问题的文件,检查了它,然后成功拉出。

  1. rm file / name / path / some / more / filenamepath
  2. git checkout file / name / path / some / more / filenamepath
  3. git pull

答案 1 :(得分:12)

  1. 删除有问题的文件。
  2. 运行git reset --hard
  3. 那应该解决它。

答案 2 :(得分:6)

你应该:

  • 获取(更新所有远程跟踪分支,如origin / master)
  • 在origin / master之上重新设置当前分支,以便在刚刚提取的7个更新提交之上重放您的2个提交。

那将是:

git checkout master
git fetch
git rebase origin/master

上述命令集的较短版本将是以下单个命令:

git pull --rebase

答案 3 :(得分:2)

有同样的问题。通过重新克隆回购解决方案解决了这个问题。但现在我认为原因是这些文件中的行结尾。我之前和他们一起玩过。

我认为行尾差异不会将文件标记为已更改,但可能会导致此消息。当你rm文件并重新checkout时,行结尾应该设置为“良好状态”,并且拉可以正常。

答案 4 :(得分:1)

我遇到了同样的问题,但是使用了.idea / vcs.xml和workspace.xml文件。我删除了2个文件,然后使用以下命令: -git pull“远程”“ brench”