windows和git不区分文件名大小写问题
文章目录
- windows不区分大小写
- windows设置区分文件大小写
- git不区分大小写
- git设置区分文件大小写
windows系统默认不区分文件名大小写,但是Linux系统是区分文件大小写的。我们使用windows系统开发,将代码推送到Linux代码库,但是其他Linux开发者也是区分大小写的就导致可能出现,Linux开发者创建同名但大小写不同的两个文件,推送至Linux代码库,这一过程是没问题的,但是windows开发者克隆代码的时候只会克隆其中一个文件,这样就出现问题了。
解决:
- 法一:开发者规范文件命名,统一小驼峰或大驼峰
- 法二:Windows开发者设置区分大小写(这里探究)
windows不区分大小写
Windows 文件系统在默认情况下是不区分大小写的,这意味着文件名 example.txt 和 Example.txt 被视为同一个文件。Windows 文件系统FAT(File Allocation Table)不区分大小写。
windows设置区分文件大小写
官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/case-sensitivity
-
检查当前目录是否区分大小写
fsutil file queryCaseSensitiveInfo <path>
将
<path>
替换为目录。 -
修改区分大小写(需要管理员身份)
fsutil file setCaseSensitiveInfo <path> enable
-
将目录更改回默认设置不区分大小写(需要管理员身份)
fsutil.exe file setCaseSensitiveInfo <path> disable
目录必须为空,才能更改该目录的区分大小写标志属性。
git不区分大小写
在Windows系统里,当 仅修改文件名大小写 时,git未检测到文件变更。
这个行为是由文件系统的不同规则引起的:
- 在类Unix文件系统(例如Linux和macOS)上,文件名是区分大小写的
- 而在Windows文件系统上,默认情况下是不区分大小写的
git 默认对大小写敏感,但是会在仓库克隆或初始化时,根据当前系统来设置是否忽略大小写,
git设置区分文件大小写
-
检查当前git是否区分大小写
git config core.ignorecase
false:区分大小写
true:不区分大小写 -
将 Git 设置为区分大小写 (FOO.txt ≠ foo.txt),请输入:
git config core.ignorecase false
-
要将 Git 设置为不区分大小写 (FOO.txt = foo.txt),请输入:
git config core.ignorecase true