Git for Windows,删除不存在的未跟踪的工作树文件。

3

我不确定如何使我的本地git仓库处于当前状态,但当我在主分支上并尝试切换到另一个分支时,我会得到以下错误信息:

error: The following untracked working tree files would be overwritten by checkout:

src/path/to/Checklist/filename.ext
我已经混淆了实际路径和文件名。问题出在“Checklist”文件夹上。在版本库中和我的本地文件路径中,这个文件夹的名称为“CheckList”(注意大写字母 L)。我尝试了以下命令,但都没有解决问题:
git reset --hard HEAD(没有错误输出,但不能解决问题)
git reset --hard origin/master(没有错误输出,但不能解决问题)
git rm src/path/to/Checklist/filename.ext("fatal: pathspec 'src/path/to/Checklist/filename.ext' did not match any files")
git add -A && git stash("No local changes to save")
我也尝试过删除“CheckList”文件夹然后重置--hard。我还尝试将文件夹重命名为“CheckList2”,然后重命名为“Checklist”,然后删除或不删除它,然后再重置--hard。这些组合都没有解决问题。
我能够使用“-f”选项检出其他分支,但每次回到主分支时,问题都会重新出现。
请注意,在GitLab中浏览主分支时,没有名为“Checklist”的文件夹(只有正确命名的“CheckList”文件夹)。因此,似乎不存在版本库中存在两个名称相同但大小写不同的文件夹的问题。
--编辑--
因此,您不必阅读接受答案的评论,我问题的具体解决方案是查看我正在尝试检出的其他分支。'master'分支或我的本地路径中不存在“Checklist”文件夹。相反,那些其他分支都有一个名为“CheckList”和一个名为“Checklist”的文件夹。由于这是Windows文件系统,所以不允许这样做。错误消息只是误导性的。

尝试从Windows资源管理器中删除整个“Checklist”文件夹,然后执行git reset --hard HEAD命令来恢复它,希望能够恢复正确的大小写。 - undefined
请注意,没有 Checklist 文件夹。我刚刚尝试删除 Checklist 文件夹并执行 git reset --hard HEAD 命令。它重新创建了 Checklist 文件夹。然而,当我尝试切换到另一个分支时,仍然收到关于不存在 Checklist 文件夹的错误消息。 - undefined
1个回答

0
错误:检出时以下未跟踪的工作树文件将被覆盖:
我认为出现这个错误是因为该文件在“master”分支中未被跟踪,但在您尝试切换到的分支中,该位置实际上有一个被跟踪的文件。切换分支会意味着覆盖当前未跟踪的文件,Git正在警告您此事。
我尝试了以下命令,但都无法解决问题: git reset --hard HEAD ...
问题出在未跟踪的文件上,它不受Git管理,因此Git命令没有效果。
要解决此问题,您可以简单地删除此文件,然后执行checkout。如果您确实需要此文件在“master”中,请将其添加到Git中。

1
如果文件不存在,我该如何删除它? - undefined
你是在告诉我,在你的 Git 文件夹中这个文件还不存在,但你却看到了这个错误信息?对我来说,这似乎不太可能。 - undefined
2
我找到了问题。在'master'分支或我的本地路径中,"Checklist"文件夹不存在。问题出现在我尝试检出的其他分支上。这些分支中都有一个"CheckList"和一个"Checklist"文件夹。由于这是一个Windows文件系统,不允许这样。错误信息只是误导性的。 - undefined
干得好,但我可能会保留这个答案,因为我认为它确实解释了你的错误,至少在某些情况下。如果你愿意,你可以发表自己的答案。 - undefined
https://dev59.com/Rqvka4cB1Zd3GeqPmQGt#50097456 这个答案解释了发生了什么。 - undefined
当文件不存在时,你该如何解决这个问题呢?这个答案并没有提供任何帮助。操作系统是Windows 11,使用的是VS Code。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接