Stash(git)显示同一文件夹中不同大小写的文件



我们目前在一个项目中遇到了一个问题,Stash(Atlassian的git)将某些文件路径设置为source文件夹(小写),而其他文件都在Source(大写)下。后者是正确的文件夹。

当我们从远程repo中提取源时,只有一个文件夹。这是有道理的,因为我们在Windows机器上工作,操作系统将阻止两个仅因大小写不同的文件夹。不幸的是,当我们尝试合并分支时,小写路径中的文件会被视为已删除,因此合并工具(Visual Studio)会尝试删除它们。其中一个是.csproj文件,所以你可以想象它的危害!

我们无法弄清楚这是如何发生的,也无法弄清楚如何撤消它,以便所有文件的路径都正确。因此,每当我们认为我们已经修复了它,它就会再次发生。

有什么想法是什么导致的,我们能做些什么来解决吗?

使用ignorecase设置。你可以这样全局设置:

git config --global core.ignorecase true

core.ignoreCase如果为true,此选项将启用各种解决方案使Git能够更好地在不区分大小写的文件系统上工作,比如FAT。例如,如果目录列表在Git期望"Makefile",Git会假设它真的是同一个文件,并继续将其记为"Makefile"。

最新更新