Git 属性

GitLab 支持定义自定义 Git 属性,例如将哪些文件视为二进制文件,以及用于语法突出显示差异的语言。

要定义这些属性,请在存储库的根目录中创建一个名为 .gitattributes 的文件,并将其推送到项目的默认分支。

编码要求

.gitattributes 文件必须以 UTF-8 编码并且不得包含字节顺序标记。如果使用不同的编码,文件的内容将被忽略。

支持混合文件编码

极狐GitLab 尝试自动检测文件的编码,但默认为 UTF-8,除非检测器支持不同的类型(例如 ISO-8859-1)。不正确的编码检测可能导致某些字符不显示在文本中,例如非 UTF-8 编码中的重音字符。

Git 内置支持处理这种情况,并自动在仓库本身的指定编码和 UTF-8 之间转换文件。使用 working-tree-encoding 属性在 .gitattributes 文件中配置对混合文件编码的支持。

示例:

*.xhtml text working-tree-encoding=ISO-8859-1

通过此示例配置,Git 在本地树中以 ISO-8859-1 编码维护仓库中的所有 .xhtml 文件,但在提交到仓库时与 UTF-8 相互转换。极狐GitLab 准确地渲染文件,因为它只能处理正确编码的 UTF-8。

如果将此配置应用于现有仓库,如果本地副本具有正确的编码但仓库没有,则可能需要修改并重新提交文件。您可以对整个仓库执行 git add --renormalize . 命令。

有关详细信息,请参阅 working-tree-encoding 文档。

语法高亮

.gitattributes 文件可用于定义在语法高亮文件和差异时使用的语言。