Git状态显示同一文件两次但大小写不同。

16

我尝试搜索我的问题,找到了一个最相近的帖子:

git Status Shows Same File Twice - But with different path slash styles

但这似乎不是我遇到的同样问题。

我在提交时注意到同一个文件名出现了两次,但大小写不同。例如,Directory/resource.hDirectory/Resource.h。现在目录中只有一个文件resource.h。如果通过Git扩展查看文件,它们看起来完全相同。没有其他隐藏的文件,只有一个文件。

因此,我尝试通过先删除resource.h文件、提交,然后重新添加文件并再次提交来解决此问题。只有一个文件显示为已添加。我以为问题解决了,但现在如果尝试检出不同的分支,就会出现以下错误。

error: The following untracked working tree files would be overwritten by checkout:
    Directory/Resource.h
Please move or remove them before you can switch branches.
Aborting
Done

我真的不知道从这里开始做什么,我只使用了几个月的Git,而且没有做过比合并分支、推送和拉取更复杂的操作。


1个回答

26

如果你在Windows系统中使用了一个ignorecase = false仓库,并且重命名文件而没有使用git,则会发生这种情况。要解决问题,请尝试以下方法:

git mv -f Resource.h resource.h
git commit -m 'fix case'

而这应该可以防止它再次发生。

git config core.ignorecase true

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