.gitattributes的预定义值

时间:2018-12-21 22:43:20

标签: git

有时候,人们使用已知扩展名列表创建 .gitattributes 文件,然后手动将其声明为textbinary

*.ts text
*.js text
*.json text
*.csv text
*.txt text
*.xml text
# etc.

Git是否具有流行文件扩展名(例如.txt,.json等)的默认(内置)列表?在每个存储库中手动声明众所周知的扩展名有意义吗?

如果Git不知道扩展名怎么办? 它是通过搜索EOL符号来尝试使用启发式方法,还是将所有未知扩展名视为binary

1 个答案:

答案 0 :(得分:3)

  

Git是否具有流行文件扩展名(例如.txt,.json等)的默认(内置)列表?

否。

  

在每个存储库中手动声明众所周知的扩展名有意义吗?

这取决于您打算放入存储库中的内容以及是否必须使用Windows。

  

如果Git不知道扩展名怎么办?

Git根本不知道扩展名。

对于行为不佳的系统的用户(这些天实际上基本上是Windows),Git默认情况下对每个文件的内容进行快速扫描。如果内容显示为二进制,则Git会猜测文件二进制文件,并且不进行任何EOL转换。如果内容似乎是文本,则Git会猜测它是 文本,并执行您选择的EOL转换。

在健全的系统上(如今基本上是所有不是 -Windows),默认的EOL转换是“请勿触摸数据”,因此即使Git将文件检测为文本,它也会执行没有数据。因此,这里根本不需要做任何事情。