协慌网

登录 贡献 社区

如何在 Git 中仅提交区分大小写的文件名更改?

我已经改变了被命名一些文件去首字母大写,如Name.jpgname.jpg 。 Git 无法识别此更改,我不得不删除文件并再次上传。在检查文件名的变化时,Git 是否有区分大小写的方法?我没有对文件本身进行任何更改。

答案

你可以使用git mv

git mv -f OldFileNameCase newfilenamecase

Git 有一个配置设置,告诉它是区分大小写还是不区分大小写: core.ignorecase 。要告诉 Git 区分大小写,只需将此设置设置为false

git config core.ignorecase false

文档

git config文档

core.ignorecase

如果为 true,则此选项启用各种变通方法,以使 git 能够更好地处理不区分大小写的文件系统,如 FAT。例如,如果目录列表在 git 需要Makefile时找到makefile ,git 将假定它实际上是同一个文件,并继续将其记住为Makefile

默认值为 false,但git-clone(1)git-init(1)将在创建存储库时探测并设置core.ignorecase true(如果适用)。

不区分大小写的文件系统

我知道的两个最流行的操作系统,它们具有不区分大小写的文件系统

  • 视窗
  • OS X.

这就是我在 OS X 上所做的:

git mv File file.tmp
git mv file.tmp file

两个步骤因为否则我得到 “文件存在” 错误。也许可以通过添加--cached等一步完成。