繁体   English   中英

Git:从……完全删除不存在的文件……从……我不知道在哪里

[英]Git : remove totally nonexistent file from… well… from I don't know where

我在Windows上使用git。 我曾经添加一个文件,然后以大写字母更改了一个字母,然后再次以新名称添加了它。 从那时起,我始终拥有两个文件(一次使用大写,一次不使用)。

 myFile.ext
 myfile.ext

Git始终将其解释为两个不同的文件(因为它配置为区分大小写),但实际上是同一文件,因此它两次跟踪该文件,每个名称下一次。

我现在已经从仓库中删除了大写文件

git rm --cached myFile.ext

所以现在我的文件只有一个轨道,这一切都很好。

 myfile.ext

问题是,如果我想对旧的提交进行结帐,git说:

错误:以下未跟踪的工作树文件将被签出覆盖:myFile.ext请先移动或删除它们,然后才能切换分支。 堕胎

但是,我对此文件无能为力,因为它既不在工作树中也不在索引中。 我试图移动文件,删除myfile.ext文件,然后再次添加它(隐藏),但没有任何效果。 myFile.ext不在git status显示,也不在gitignore中。

我该如何解决?

也许最好的方法是使用以下命令从历史记录中删除myFile.ext:

git filter-branch --index-filter 'git rm --cached --ignore-unmatch myFile.ext' HEAD

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM