我想让 git 对源代码不区分大小写。有没有办法做到这一点?(不,我不希望它忽略文件路径中的大小写变化。)
2 回答
嗯,当然,有。如果你想上吊,git 很乐意为你提供足够的绳子2个钩子。1
Git 本身会跟踪内容,并不关心内容是什么。小写和大写字母被编码为不同的字节,这就是 git 所知道的。
然而 git 是非常可扩展的。您可以告诉它在从磁盘读取文件、将文件写入磁盘、计算它们之间的差异以及合并它们时使用自定义过滤器。
如果您想让它保留大小写并忽略 and 中的大小写diff
,则merge
需要实现自定义差异和合并驱动程序。diff
在gitattributes(5)中查找。如果要将所有内容标准化为大写或小写,则需要实现读写过滤器(称为“clean”和“smudge”)。filter
在gitattributes(5)中查找。并且您必须使用 gitattributes 机制将其应用于适当的文件。
1也就是说,我真的认为这是个坏主意。大多数编程语言都区分大小写,对于那些不区分大小写的语言,自己坚持一种情况(通常较低)会容易得多。但也许在某些情况下,它可能是最好的坏选择。
2您必须自己提供绳索(进行案例转换的过滤器)。
Git 对源代码不区分大小写,因为源代码不区分大小写。更改代码的大小写会更改代码的含义。var abc
并且var ABC
是两个不同的变量声明。
你应该做的是遵循一个适当的编码风格,它采用案例模式来遵循,并坚持下去。