我通过将第一个字母去大写来更改了一些文件名,如name.jpg中的name.jpg。Git无法识别这些更改,我不得不删除这些文件并再次上传。在检查文件名的更改时,Git是否可以区分大小写?我没有对文件本身进行任何更改。


当前回答

如果您正在进行更复杂的更改,如目录名大小写更改,您可以在Linux机器上进行更改,因为Linux本身(以及Linux上的git)将名称相同但大小写不同的文件/目录视为完全不同的文件或目录。

因此,如果您在Windows上,您可以使用WSL安装Ubuntu,在那里克隆您的repo,使用VSCode打开克隆的repo目录(使用WSL远程扩展从Windows访问WSL Ubuntu),然后您将能够通过VSCode进行重命名,并使用VSCode git集成提交/推送它们。

其他回答

在OSX下,为了避免这个问题并避免在不区分大小写的文件系统上开发时出现其他问题,可以使用Disk Utility创建区分大小写虚拟驱动器/磁盘映像。

运行磁盘实用程序,创建新的磁盘映像,并使用以下设置(或根据需要进行更改,但要区分大小写):

确保告诉git它现在在区分大小写的FS上:

git config core.ignorecase false

因此,GitHub如何处理这种区分大小写的部署问题有很多解决方案。

在我的例子中,我已经将文件名的大小写约定从大写改为小写。

我相信git可以跟踪更改,但这个命令git-config-core.ignorecase false指示git如何在幕后操作

在我的例子中,我运行了命令,git突然有很多文件要跟踪,标记为未跟踪。

然后我点击gitadd,然后git提交并再次在netlify上运行我的构建。

然后可以跟踪现在显示的所有错误,例如找不到模块:无法解析“”/Components/ProductRightSide位于/opt/build/rebo/Components/products中,并已修复,以便git能够成功跟踪和实施更改。

这是一个很好的解决方法,也可以避免沮丧,但相信我,这肯定会奏效的。

PS:解决问题后,您可能需要运行命令git-config-core.ignorecase true还原git如何区分大小写。

此外,请注意git-config-core.ignorecase-false与其他文件扩展名存在问题,因此您可能需要注意,如果您知道自己在做什么并且确信这一点,请执行此操作。

这是netlify上的一条线索,可能会有所帮助

只要您只是重命名文件而不是文件夹,就可以使用gitmv:

git mv -f yOuRfIlEnAmE yourfilename

(在Git2.0.1中进行了修改,上面的咒语中的-f标志是多余的,但在较旧的Git版本中需要。)

将文件Name.jpg重命名为name1.jpg提交删除的文件Name.jpg将文件name1.jpg重命名为name.jpg将添加的文件名.jpg修改为上一次提交git添加名称.jpg修改最后一次提交

或者只需在git存储库web UI界面上重命名所需文件并提交:)