git pull失败,“Untracked工作树文件'blah'将被合并覆盖”,但树是干净的

时间:2010-07-02 12:38:33

标签: git

我已经检查了我要推送的本地存储库的一些更改,但是当我执行git pull时,我得到:

paul$ git pull 
  

错误:未经跟踪的工作树文件'documentation / Android / SwiftKey / buttons.xcf'将被合并覆盖。中止

我的工作树中没有未跟踪的文件:

paul$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 26 different commit(s) each, respectively.
#
nothing to commit (working directory clean)

我所做的提交不会触及它抱怨的文件。

我已经阅读了答案,建议我做git reset HEAD --hard,但我不确定这会对我所做的提交产生什么影响?

1 个答案:

答案 0 :(得分:26)

这不是你所做的提交触摸文件,而是你提交的提交。检查您正在跟踪的远程分支,看看发生了什么。例如,git log master..origin/master将显示自上次提取以来 origin / master 上发生的所有提交。根据您上面的输出,其中有26个。使用--name-status选项将显示添加文件的提交。

您需要重命名有问题的文件,执行拉动,然后将其移回(从回购中覆盖副本)。然后git diff filename会告诉您副本与其他人承诺掌握的副本有何不同。然后,您可以提交差异,或者使用git checkout filename将其丢弃。

您需要使用git pull --rebase来修改origin中最近提交的内容。一旦git status表示主人提前而不是从原点/主人分道,您就可以推送。