Git窗口,删除不存在的未跟踪工作树文件

时间:2017-05-19 15:41:38

标签: git

我不确定我是如何让我的本地git repo进入当前状态的,但当我在master上并尝试检查另一个分支时,我收到以下错误:

  

错误:将覆盖以下未跟踪的工作树文件   通过结帐:

src/path/to/Checklist/filename.ext

(我已经混淆了实际的路径和文件名)。问题出在“Checklist”文件夹中。在repo中,在我的本地文件路径中,该文件夹名为“CheckList”(注意大写字母L)。

我尝试了以下命令,但没有一个能解决问题:

  

git reset --hard HEAD

(没有错误输出,但无法解决问题)

  

git reset --hard origin / master

(没有错误输出,但无法解决问题)

  

git rm src / path / to / Checklist / filename.ext

“致命:pathspec'src / path / to / Checklist / filename.ext'与任何文件都不匹配”

  

git add -A&& git stash

“没有保存的本地更改”

我也尝试删除“CheckList”文件夹,然后重置--hard。我已经尝试将文件夹重命名为“CheckList2”然后重命名为“Checklist”,然后将其删除或不删除,然后重置--hard。这些组合都没有解决问题。

我可以使用“-f”选项查看其他分支,但每次回到master时,问题都会返回。

请注意,浏览GitLab中的主分支没有名为“Checklist”的文件夹(只有正确命名的名为“CheckList”的文件夹)。因此,在不同情况下,repo中有两个具有相同名称的文件夹似乎不是问题。

- 编辑 -

因此,您不必阅读对已接受答案的评论,我的问题的具体解决方案是查看我试图检查的其他分支。 “主页”分支或本地路径中不存在“核对表”文件夹。相反,那些其他分支在其中具有“CheckList”和“Checklist”文件夹。由于这是一个Windows文件系统,因此不允许这样做。错误信息只是误导。

1 个答案:

答案 0 :(得分:1)

  

错误:以下未跟踪的工作树文件将被checkout覆盖:

我相信这个错误正在发生,因为有问题的文件在master分支中未跟踪,但在您尝试切换到的分支中,在该确切位置存在实际跟踪文件。切换分支意味着破坏当前未跟踪的文件,Git会提醒您注意这一点。

  

我尝试了以下命令,但没有一个能解决问题:
  git reset - hard HEAD
  ...

问题在于未经跟踪的文件,它不是由Git管理的,因此Git命令无效也就不足为奇了。

要解决此问题,您只需删除此文件,然后执行结帐。如果您确实需要master中的此文件,请将其添加到Git。