0

git 和 Windows 关于区分大小写有一个非常奇怪的问题。

我不是 git 大师,但我也不是初学者。只是想把它扔在那里。

我面临的问题:

  • 克隆一个存储库(不要指定分支,只需获取远程源主机上的内容)

  • 签出现有的开发分支(我们称之为 DEV)

  • 许多文件现在都是小写的

    一个。两个分支对这些文件具有相同的大小写

    湾。受影响的文件似乎是包含两个分支之间内容差异的文件

    C。并非所有文件都受到影响

补充说明:

  • 使用 Windows 系统(不区分大小写)

  • git 配置文件定义 ignorecase = true

    一个。尝试切换为false,并没有消除此问题

  • 尝试在每个分支上运行 ls-tree,两者都将文件显示为具有相同的大小写(不是全部小写)

  • 切换到 Dev 分支并返回到 master 时,受影响的文件名保持小写

  • 直接克隆 Dev 分支可以正常工作。不会产生这些小写文件名

我已经尝试了很多方法来解决这个问题,尽管目前还没有解决方案。

有没有人知道这里可能发生了什么?我没有找到关于这个问题的太多支持。

这个问题看起来是相关的(但没有答案):

切换 GIT 分支随机更改文件名大小写

谢谢

4

2 回答 2

0

可能有人可以确切地弄清楚正在发生的事情以及原因,但是我担心大多数回答这个问题的经验丰富的人会提供一些类似于“如果它伤害了,不要这样做”的东西。

例如,torek 在评论中建议使用 Linux 系统。Torek 是 stackoverflow 上最有经验的人之一,如果他们没有为您提供答案,那么很有可能它不会到来。

如果您不想获得 Linux 系统,另一种选择是将所有文件的大小写更改为相同(例如全部小写)。

出于这个原因,人们经常建议人们不要在文件名中混合大小写。我个人更喜欢全部小写。

于 2021-10-27T16:18:46.993 回答
0

在 Windows 中的文件夹上启用区分大小写。(NTFS 自 2018 年 4 月起具有此功能。)

fsutil file setCaseSensitiveInfo <folder> enable

请参阅https://docs.microsoft.com/en-us/windows/wsl/case-sensitive

于 2021-10-27T16:24:37.843 回答