首页/开发/Git 与协作速查/gitattributes 进阶属性
进阶与大仓实践69 条

gitattributes 进阶属性

除行尾与 LFS 外,属性还能控制差异显示、合并驱动、导出打包与语言统计:diff、merge、export-ignore、export-subst、linguist 等。

Git 与协作速查开发更新于 2026-10-12
diff指定文本转换或自定义 diff 驱动
export-ignore/substgit archive 打包时排除或替换内容
linguist-vendored托管平台语言统计用(第三方代码排除)

属性示例

属性示例
# 打包发布时排除测试与 CI 文件
/tests/ export-ignore
/.github/ export-ignore
# 第三方目录不计入语言统计
vendor/** linguist-vendored
# 自定义 diff 驱动(二进制/生成文件)
*.lock -diff
属性文件随分支变化,切换分支后行为可能不同;排查差异显示问题先 git check-attr。

易错点

  • export-ignore 只影响 git archive,不影响 clone 与检出,别把它当权限控制
  • 属性模式大小写敏感性与平台文件系统不一致时会漏配

数据来源与参考

  • Git 官方文档:gitattributes(export-ignore/-diff/linguist)
  • Pro Git 2nd Edition · 8.2 Git 属性
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌