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

我改变了一些文件的名称,去掉了第一个字母的首字母,如Name.jpg改为name.jpg。Git不能识别这种变化,我不得不删除这些文件并重新上传。有什么办法可以让Git在检查文件名的变化时对大小写敏感?我没有对文件本身做任何修改。

你可以使用git mv

git mv -f OldFileNameCase newfilenamecase
评论(16)

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

git config core.ignorecase false

文档

来自git config文档

core.ignorecase.

如果为真,该选项可以启用各种变通方法,使git在不区分大小写的文件系统(如FAT)上更好地工作。例如,如果目录列表发现makefile,而git期望的是Makefile,git会认为这确实是同一个文件,并继续将其记为Makefile

默认是false,除了git-clone(1)git-init(1)会在创建版本库时探测并酌情设置core.ignorecase为true。

不区分大小写的文件系统

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

  • Windows
  • OS X
评论(20)

这是我在OS X上的做法。

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

两步,因为否则我得到一个 "文件存在 "的错误。也许可以通过添加--cached之类的方法一步完成。

评论(7)