這是Git的一個文本文件,文件中的一行定義一個路徑的若干個屬性凛虽。
格式為:
要配置的文件 屬性1 屬性n ...
是以行為單位的進(jìn)行設(shè)置文件屬性的
一死遭、屬性:
1、text
控制行尾的規(guī)范性
如果一個文本文件是規(guī)范的涩维,則Git庫匯總該文件的行尾總是LF殃姓。
對于工作目錄,除了text屬性之外瓦阐,還可以設(shè)置eol屬性,或core.eol配置變量篷牌。
2睡蟋、eol
設(shè)置行末字符
eol=lf,入庫時將行尾規(guī)范為LF枷颊,檢出時禁止將行尾轉(zhuǎn)換為CRLF
eol=crlf戳杀,入庫時將行尾規(guī)范為CRLF,檢出時將行尾轉(zhuǎn)換為CRLF
3夭苗、ident
為路徑設(shè)置ident屬性信卡,路徑中的blob對象中的$id$將會被替換為$id:char_40_hexadecimal_name
4、diff
對特殊文件生成差異的方式
可以告訴Git是否為路徑生成文本補(bǔ)丁還是將路徑視為二進(jìn)制文件题造;也可以影響在hunk頭部顯示的@@ -k,l +n,m @@傍菇,告訴Git使用外部命令來生成差異,或者是在生成差異之前讓Git將二進(jìn)制文件轉(zhuǎn)換為文本文件界赔。
設(shè)置diff
對于一個路徑丢习,如果設(shè)置了diff屬性,它將被視為文本文件即使它包含一些通常從不會出現(xiàn)文本文件的字節(jié)值淮悼,例如NULL咐低。
不設(shè)置diff
沒有設(shè)置diff屬性的路徑會生成differ二進(jìn)制文件(如果啟用了二進(jìn)制補(bǔ)丁,會生成二進(jìn)制補(bǔ)锻嘈取)见擦。
不確定
未指明diff屬性的路徑首先會檢查其內(nèi)容,如果它看起來像文本文件并且小于core.bigFileThreshold,則將其視為文本文件鲤屡,否則將生成differ二進(jìn)制文件儡湾。
core.bigFileThreshold:? 所有平臺上的默認(rèn)值為512MB。大于此大小的文件將被縮減执俩,而不會嘗試增量壓縮徐钠。
字符串
diff是使用指定的diff驅(qū)動程序顯示的。每個驅(qū)動程序可以指定一個或多個選項(xiàng)役首。如下部分所述尝丐,驅(qū)動程序foo是由Git的配置文件中diff.foo的配置值定義的。
定義一個外部的diff驅(qū)動程序
diff驅(qū)動程序的定義是在gitconfig中完成的衡奥,并不是在gitattributes文件中爹袁,所以嚴(yán)格來說,這里并不適合談?wù)撍?/p>
將文件標(biāo)記為二進(jìn)制
eg.
*.sh? ? ? ? text eol=lf?
二矮固、使用
1失息、在一個Git庫中可以有多個gitattributes文件
按照匹配的距離最近的gitattributes文件進(jìn)行選擇
在同一個gitattributes文件中,按照行的先后順序档址,后序優(yōu)先(!屬性? 可進(jìn)行該屬性的覆蓋)
2盹兢、統(tǒng)一設(shè)置
git config --get core.attributesFile
git config --global --get core.attributesFile