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

dar*_*aro 27 git bitbucket

我试图从远程分支拉出更改,但得到一个没有意义的错误

当我做

git pull
Run Code Online (Sandbox Code Playgroud)

我回来了

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

问题是我没有需要提交的更改 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
Run Code Online (Sandbox Code Playgroud)

我试过了,git reset --hard HEAD但没有帮助

有任何想法吗?

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

谢谢


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

pfe*_*erg 25

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

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

  1. rm文件/名称/路径/ some/more/filenamepath
  2. git checkout文件/ name/path/some/more/filenamepath
  3. git pull


Dan*_*Dan 16

  1. 删除有问题的文件.
  2. git reset --hard.

那应该解决它.


Von*_*onC 6

你应该:

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

那将是:

git checkout master
git fetch
git rebase origin/master
Run Code Online (Sandbox Code Playgroud)

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

git pull --rebase
Run Code Online (Sandbox Code Playgroud)

  • 那没有用,我得到 ```Cannot rebase: You have unstaged changes。请提交或隐藏它们。``` 但实际上没有未暂存的更改 (2认同)