我在Windows上使用git。我曾经添加了一个文件,然后用大写字母更改了一个字母,再次使用新名称添加了它。从那以后,我总是有两个文件(一次是大写,一次不是)。
myFile.ext
myfile.ext
Git总是把它解释为两个不同的文件(因为它配置区分大小写)但它实际上是同一个文件,所以它跟踪这个文件两次,每个名称下都有一次。
我现在已经用
从repo中删除了大写文件git rm --cached myFile.ext
所以我现在只有一个我的文件轨道,这一切都很好。
myfile.ext
问题在于,如果我想在较旧的提交中进行结账,git说:
错误:以下未跟踪的工作树文件将被checkout覆盖: myFile.ext 请在移动分支之前移动或移除它们。 中止
但是,我无法对此文件执行任何操作,因为它不在工作树中,也不在索引中。我试图移动文件,删除myfile.ext
文件并再次添加,藏匿,但没有任何效果。 myFile.ext
未在git status
中显示,且不在gitignore中。
我该如何解决这个问题?
答案 0 :(得分:1)
也许最好的方法是使用以下命令从历史记录中删除myFile.ext:
git filter-branch --index-filter 'git rm --cached --ignore-unmatch myFile.ext' HEAD