Lanms Blog

Git的gitattributes文件详解
Publish: 2019/3/22   

Git的gitattributes文件详解

Git的gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干个属性。

  1. gitattributes文件以行为单位设置一个路径下所有文件的属性,格式如下:
  1. 在gitattributes文件的一行中,一个属性(以text属性为例)可能有4种状态:
    • 设置text
    • 不设置-text
    • 设置值text=string
    • 未声明,通常不出现该属性即可;但是为了覆盖其他文件中的声明,也可以 !text
  1. gitattributes文件示例:
*           text=auto
.txt        text
.jpg        -text
.vcproj        text eol=crlf
.sh            text eol=lf
.py            eol=lf

说明:

  1. 在一个Git库中可以有多个gitattributes文件:

    不同gitattributes文件中,属性设置的优先级(从高到低):

    • /myproj/info/attributes文件
    • /myproj/my_path/.gitattributes文件
    • /myproj/.gitattributes文件
    • 同一个gitattributes文件中,按照行的先后顺序,如果一个文件的某个属性被多次设置,则后序的设置优先
  1. 也可以为所有Git库设置统一的gitattributes文件:
git config --get core.attributesFile
git config --global --get core.attributesFile
  1. gitattributes文件中可以定义的属性:
    • text,控制行尾的规范性。
    • 如果一个文本文件是规范的,则Git库中该文件的行尾总是LF。

对于工作目录,除了text属性之外,还可以设置eol属性,或core.eol配置变量。

利用命令clean,smudge

Git内置的merge驱动:

在执行git diff, git apply时是否考虑空格。

对于delta=false的路径中的blob对象,不会进行Delta压缩

如果该属性未设置,或设置了无效值,则GUI工具会使用配置变量gui.encoding的值。

参考链接:

https://git-scm.com/docs/gitattributes


← Git基础 Linux系统设置 →

Powered by Hexo, Theme designs by @hpcslag.
Style-Framework Tocas-UI designs by @yamioldmel