.gittributes默认文件类型处理

.gittributes默认文件类型处理,git,line-endings,gitattributes,Git,Line Endings,Gitattributes,我们已经为我们的项目存储库创建了一个文本和二进制文件类型列表,但我担心有些类型可能已经脱离了该分类,或者将来有人可能会添加一个新的文件类型,而忘记将其添加到.gittribute文件中 某些类别下不在此文件中的文件类型的默认行为是什么?是否可以将未提及的文件类型的默认行为设置为“二进制”?我认为,在autocrlf转换等用途中,文本文件并非真正被视为文本的问题较少,而不是仅仅因为配置中没有提到文件类型,就让它将行尾更改为rar文件。默认设置是尝试确定文件是文本还是二进制文件-如果文件被视为二进制

我们已经为我们的项目存储库创建了一个文本和二进制文件类型列表,但我担心有些类型可能已经脱离了该分类,或者将来有人可能会添加一个新的文件类型,而忘记将其添加到
.gittribute
文件中


某些类别下不在此文件中的文件类型的默认行为是什么?是否可以将未提及的文件类型的默认行为设置为“二进制”?我认为,在
autocrlf
转换等用途中,文本文件并非真正被视为文本的问题较少,而不是仅仅因为配置中没有提到文件类型,就让它将行尾更改为
rar
文件。默认设置是尝试确定文件是文本还是二进制文件-如果文件被视为二进制文件,则不执行任何操作,如果是文本,则将其视为定义了core.eol和/或autocrlf设置。对于大多数用例,二进制文件的检测是有效的。有些地方没有,而.gittattributes可以在那里提供帮助

另请参见我之前的提问,这部分是相关的

编辑:关于将most默认为二进制,请参阅。基本上可以这样做,在.gittributes中使用如下内容:

* binary
*.txt crlf
所以明星应该是第一条规则


编辑:更改顺序-在某一点上,已经有文件证明这些顺序从一般到更具体,后者覆盖前者。

当多个图案与路径匹配时,后面的一行将覆盖前面的一行。此覆盖是根据属性完成的。模式如何匹配路径的规则与.gitignore文件中的规则相同;请参见gitignore(5)”。因此,似乎应该先放置星号,然后使用
*.txt text diff merge
覆盖,以重新声明由
二进制文件
设置的所有属性,二进制文件是
-text-diff-merge
的别名。根据@Matt的评论,编辑答案以更正它。