git配置文件―― .gitattributes

匿名 (未验证) 提交于 2019-12-03 00:40:02

.gitattributes

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

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

要匹配的文件模式 属性1 属性2 ...
  • 设置text
  • 不设置-text
  • 设置值text=string
  • 未声明,通常不出现该属性即可;但是为了覆盖其他文件中的声明,也可以!text
*               text=auto *.txt       text *.jpg       -text *.vcproj    text eol=crlf *.sh        text eol=lf *.py        eol=lf 

说明:

  • 第1行,对任何文件,设置text=auto,表示文件的行尾自动转换。如果是文本文件,则在文件入Git库时,行尾自动转换为LF。如果已经在入Git库中的文件的行尾为CRLF,则该文件在入Git库时,不再转换为LF。

  • 第2行,对于txt文件,标记为文本文件,并进行行尾规范化。

  • 第3行,对于jpg文件,标记为非文本文件,不进行任何的行尾转换。

  • 第4行,对于vcproj文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。但是在检出到工作目录时,行尾自动转换为CRLF。

  • 第5行,对于sh文件,标记为文本文件,在文件入Git库时进行规范化,即行尾为LF。在检出到工作目录时,行尾也不会转换为CRLF(即保持LF)。

  • 第6行,对于py文件,只针对工作目录中的文件,行尾为LF。

  1. 在一个Git库中可以有多个gitattributes文件:
    不同gitattributes文件中,属性设置的优先级(从高到低):
    /myproj/info/attributes文件
    /myproj/my_path/.gitattributes文件
    /myproj/.gitattributes文件
    同一个gitattributes文件中,按照行的先后顺序,如果一个文件的某个属性被多次设置,则后序的设置优先
git config --get core.attributesFile git config --global --get core.attributesFile
  • text,控制行尾的规范性。
    如果一个文本文件是规范的,则Git库中该文件的行尾总是LF。
eol,设置行末字符   eol=lf,入库时将行尾规范为LF,检出时禁止将行尾转换为CRLF   eol=crlf,入库时将行尾规范为CRLF,检出时将行尾转换为CRLF crlf,已过时,类似于text ident,为路径设置ident属性,路径中的blob对象中的$Id$将会被替换为$Id:char_40_hexadecimal_name filter
diff merge,与merge.default配置变量一起确定如何合并文件
merge   merge=text   merge=binary   merge=union whitespace,对应core.whitespace配置变量
export-ignore,export-subst,打包相关的属性  delta,即Delta压缩   对于delta=false的路径中的blob对象,不会进行Delta压缩  encoding,为GUI工具(如gitk, git-gui)设置字符编码,以正确显示匹配的文件内容   如果该属性未设置,或设置了无效值,则GUI工具会使用配置变量gui.encoding的值。

原文:https://www.cnblogs.com/qiqi715/p/9286468.html

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!