Git的gitattributes文件详解
Git的gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干个属性。
1. gitattributes文件以行为单位设置一个路径下所有文件的属性,格式如下:
- 要匹配的文件模式 属性1 属性2 ...
2. 在gitattributes文件的一行中,一个属性(以text属性为例)可能有4种状态:
- 设置text
- 不设置-text
- 设置值text=string
- 未声明,通常不出现该属性即可;但是为了覆盖其他文件中的声明,也可以!text
3. gitattributes文件示例:
- * 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。
4. 在一个Git库中可以有多个gitattributes文件:
- 不同gitattributes文件中,属性设置的优先级(从高到低):
/myproj/info/attributes文件
/myproj/my_path/.gitattributes文件
/myproj/.gitattributes文件
- 同一个gitattributes文件中,按照行的先后顺序,如果一个文件的某个属性被多次设置,则后序的设置优先
5. 也可以为所有Git库设置统一的gitattributes文件:
- git config --get core.attributesFile
- git config --global --get core.attributesFile
6. gitattributes文件中可以定义的属性:
- text,控制行尾的规范性。
如果一个文本文件是规范的,则Git库中该文件的行尾总是LF。
对于工作目录,除了text属性之外,还可以设置eol属性,或core.eol配置变量。
- eol,设置行末字符
- eol=lf,入库时将行尾规范为LF,检出时禁止将行尾转换为CRLF
- eol=crlf,入库时将行尾规范为CRLF,检出时将行尾转换为CRLF
- crlf,已过时,类似于text
- ident,为路径设置ident属性,路径中的blob对象中的$Id$将会被替换为$Id:char_40_hexadecimal_name
- filter
利用命令clean,smudge
- diff
- merge,与merge.default配置变量一起确定如何合并文件
在执行git merge, git revert和git cherry-pick时,如何考虑文件的版本
Git内置的merge驱动:
- merge=text
- merge=binary
- merge=union
- whitespace,对应core.whitespace配置变量
在执行git diff, git apply时是否考虑空格。
- export-ignore,export-subst,打包相关的属性
- delta,即Delta压缩
对于delta=false的路径中的blob对象,不会进行Delta压缩
- encoding,为GUI工具(如gitk, git-gui)设置字符编码,以正确显示匹配的文件内容
如果该属性未设置,或设置了无效值,则GUI工具会使用配置变量gui.encoding的值。
参考链接:
https://git-scm.com/docs/gitattributes
Git的gitattributes文件详解的更多相关文章
- SUBLIME TEXT 2 设置文件详解
SUBLIME TEXT 2 设置文件详解 Preferences.sublime-settings文件: // While you can edit this file, it’s best to ...
- Angular Npm Package.Json文件详解
Angular7 Npm Package.Json文件详解 近期时间比较充裕,正好想了解下Angular Project相关内容.于是将Npm官网上关于Package.json的官方说明文档进行了 ...
- vue-cli生成的模板各个文件详解(转)
vue-cli脚手架中webpack配置基础文件详解 一.前言 原文:https://segmentfault.com/a/1190000014804826 vue-cli是构建vue单页应用的脚手架 ...
- Windows系统Git安装教程(详解Git安装过程)
Windows系统Git安装教程(详解Git安装过程) 今天更换电脑系统,需要重新安装Git,正好做个记录,希望对第一次使用的博友能有所帮助! 获取Git安装程序 到Git官网下载,网站地址: ...
- web.xml文件详解
web.xml文件详解 Table of Contents 1 listener. filter.servlet 加载顺序 2 web.xml文件详解 3 相应元素配置 1 listener. f ...
- Linux中/proc目录下文件详解
转载于:http://blog.chinaunix.net/uid-10449864-id-2956854.html Linux中/proc目录下文件详解(一)/proc文件系统下的多种文件提供的系统 ...
- [转]AndroidManifest.xml文件详解
转自:http://www.cnblogs.com/greatverve/archive/2012/05/08/AndroidManifest-xml.html AndroidManifest.xml ...
- delphi 资源文件详解
delphi资源文件详解 一.引子: 现在的Windows应用程序几乎都使用图标.图片.光标.声音等,我们称它们为资源(Resource).最简单的使用资源的办法是把这些资源的源文件打入软件包,以方便 ...
- VSFTPD全攻略(/etc/vsftpd/vsftpd.conf文件详解)
/etc/vsftpd/vsftpd.conf文件详解,分好类,方便大家查找与学习 #################匿名权限控制############### anonymous_enable=YE ...
随机推荐
- Android sdcard文件读写操作
这次演示以,安卓原生操作系统 Nexus_6手机进行操作: AndroidManifest.xml配置相关权限: <!-- 增加权限 --> <uses-permission and ...
- 3D空间中射线与三角形的交叉检测算法【转】
引言 射线Ray,在3D图形学中有很多重要的应用.比如,pick操作就是使用射线Ray来实现的,还有诸如子弹射线的碰撞检测等等都可以使用射线Ray来完成.所以,在本次博客中,将会简单的像大家介绍下,如 ...
- 射线与平面的相交检测(Ray-Plane intersection test)【转】
射线的定义 在欧几里德几何中,射线的定义是:直线上一点和它一旁的部分.由此可知,射线有两个性质,一是只有一个端点,二是一端无限延伸. 射线的参数方程 其中p0是射线的起点, u是射线的方向向量,t & ...
- TransactionScope事务使用
using (System.Transactions.TransactionScope T_Scope = new System.Transactions.TransactionScope()) { ...
- CS中窗体的基类(BaseForm)注意点
窗体基类最好新建一个窗体(BaseForm) 1.这样能够保证在VS中保证他的派生窗口也能够可视化. 2.如果基类直接是一个cs类文件,对于处理派生窗口就很复杂,比如按钮权限之类的操作; 如果直接继承 ...
- .NET高级代码审计(第一课)XmlSerializer反序列化漏洞
0X00 前言 在.NET 框架中的 XmlSerializer 类是一种很棒的工具,它是将高度结构化的 XML 数据映射为 .NET 对象.XmlSerializer类在程序中通过单个 API 调用 ...
- 基于Easyui框架的datagrid绑定数据,新增,修改,删除方法(四)
@{ ViewBag.Title = "xxlist"; } <script type="text/javascript" language=" ...
- mvc基础知识(1)
复制大佬的,侵权请联系我主动删除 1.js/css合并 在之前的crud例子中,我们引入js/css脚本的方式和平常的web开发一样 <script src="~/Scripts/jq ...
- koa和egg项目webpack热更新实现
背景 在用Node.js+Webpack构建的方式进行开发时, 我们希望能实现修改代码能实时刷新页面UI的效果. 这个特性webpack本身是支持的, 而且基于koa也有现成的koa-webpack- ...
- Android与js交互
本文转载自:http://blog.csdn.net/it1039871366/article/details/46372207 一文. Android 中可以通过webview来实现和js的交互,在 ...