windows和git不区分文件名大小写问题及解决
作者:_洋
还在为Windows下Git不识别文件名大小写变更而烦恼吗?本文详细讲解Windows文件系统默认不区分大小写的原因,并提供通过命令行开启目录区分大小写以及配置Git大小写敏感的实用方法,帮助开发者解决跨平台协作中的常见问题
- 法一:开发者规范文件命名,统一小驼峰或大驼峰
- 法二: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
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
