我不确定我是如何让我的本地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文件系统,因此不允许这样做。错误信息只是误导。
答案 0 :(得分:1)
错误:以下未跟踪的工作树文件将被checkout覆盖:
我相信这个错误正在发生,因为有问题的文件在master
分支中未跟踪,但在您尝试切换到的分支中,在该确切位置存在实际跟踪文件。切换分支意味着破坏当前未跟踪的文件,Git会提醒您注意这一点。
我尝试了以下命令,但没有一个能解决问题:
git reset - hard HEAD
...
问题在于未经跟踪的文件,它不是由Git管理的,因此Git命令无效也就不足为奇了。
要解决此问题,您只需删除此文件,然后执行结帐。如果您确实需要master
中的此文件,请将其添加到Git。