Git 在处理文件名时是否忽略大小写差异

122 阅读1分钟

在开发过程中经常会遇到改文件名的情况,比如把一个文件名由大驼峰改为小驼峰。如果我们是用Git管理代码,这时候就会出现文件跟踪失效问题,导致本地小驼峰的文件没法替换掉远程的大驼峰文件。例子如下:

image.png

将图中的 UserForm.vue 文件名改为 userForm.vue,此时我们可以看到Git没在跟踪到任何变化。

image.png

如何来解决这个问题呢?其实也简单,我们只需要在当前项目下运行如下命令:

git config core.ignorecase false

在 Git 中,core.ignorecase 配置项用于控制 Git 在处理文件名时是否忽略大小写差异。这个配置项主要影响的是那些文件系统(如 Windows 的 NTFS)默认对文件名大小写不敏感的环境。

当你设置 git config core.ignorecase false 时,你告诉 Git 在处理文件名时要区分大小写。这意味着,如果两个文件名仅在大小写上有差异(例如,UserForm.vue 和 userForm.vue),Git 会将它们视为两个不同的文件。

设置完成后就会看到Git跟踪到了新的变化,如下图:

image.png

若想还原以前的设置,运行如下命令即可:

git config core.ignorecase true