我已经通过取消首字母大写更改了一些文件名,Name.jpg如name.jpg. Git 无法识别这些更改,我不得不删除这些文件并再次上传它们。Git 在检查文件名更改时是否可以区分大小写?我没有对文件本身进行任何更改。
Name.jpg
name.jpg. Git
Git 有一个配置设置,告诉它是否需要区分大小写或不区分大小写的文件系统:core.ignorecase. 要告诉 Git 区分大小写,只需将此设置设置为false. (如果您已经推送了文件,请小心,那么您应该首先在给出其他答案的情况下移动它们)。
core.ignorecase
false
git config core.ignorecase false
请注意,在不区分大小写的文件系统上将此选项设置为 false 通常是个坏主意。这样做会导致奇怪的错误。例如,以仅更改字母大小写的方式重命名文件将导致 git 报告虚假冲突或创建重复文件(来自 Mark Amery 的评论)。
从git config文档中:
git config
core.ignorecase 如果为 true,则此选项启用各种解决方法,以使 git 在不区分大小写的文件系统(如 FAT)上更好地工作。例如,如果makefile在 git 期望的时候找到了一个目录列表Makefile,git 将假定它确实是同一个文件,并继续将它记住为Makefile. 默认值为 false,除了git-clone(1)或git-init(1)将在创建存储库时进行探测并core.ignorecase在适当的情况下设置为 true。
如果为 true,则此选项启用各种解决方法,以使 git 在不区分大小写的文件系统(如 FAT)上更好地工作。例如,如果makefile在 git 期望的时候找到了一个目录列表Makefile,git 将假定它确实是同一个文件,并继续将它记住为Makefile.
makefile
Makefile
默认值为 false,除了git-clone(1)或git-init(1)将在创建存储库时进行探测并core.ignorecase在适当的情况下设置为 true。
我所知道的两个最流行的具有不区分大小写文件系统的操作系统是
只要您只是重命名文件而不是文件夹,您就可以使用git mv:
git mv -f yOuRfIlEnAmE yourfilename
(作为Git 2.0.1的更改-f,上面标志是多余的,但在较旧的 Git 版本中需要它。)
-f