有时候,人们使用已知扩展名列表创建 .gitattributes 文件,然后手动将其声明为text
或binary
:
*.ts text
*.js text
*.json text
*.csv text
*.txt text
*.xml text
# etc.
Git是否具有流行文件扩展名(例如.txt,.json等)的默认(内置)列表?在每个存储库中手动声明众所周知的扩展名有意义吗?
如果Git不知道扩展名怎么办?
它是通过搜索EOL符号来尝试使用启发式方法,还是将所有未知扩展名视为binary
?
答案 0 :(得分:3)
Git是否具有流行文件扩展名(例如.txt,.json等)的默认(内置)列表?
否。
在每个存储库中手动声明众所周知的扩展名有意义吗?
这取决于您打算放入存储库中的内容以及是否必须使用Windows。
如果Git不知道扩展名怎么办?
Git根本不知道扩展名。
对于行为不佳的系统的用户(这些天实际上基本上是Windows),Git默认情况下对每个文件的内容进行快速扫描。如果内容显示为二进制,则Git会猜测文件是二进制文件,并且不进行任何EOL转换。如果内容似乎是文本,则Git会猜测它是 文本,并执行您选择的EOL转换。
在健全的系统上(如今基本上是所有不是 -Windows),默认的EOL转换是“请勿触摸数据”,因此即使Git将文件检测为文本,它也会执行没有数据。因此,这里根本不需要做任何事情。