.gitattributes

文档

https://git-scm.com/docs/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。

  1. 在一个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
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的值。

git配置文件—— .gitattributes的更多相关文章

  1. Git的gitattributes文件详解

    转自:Git的gitattributes文件详解 Git的gitattributes文件是一个文本文件,文件中的一行定义一个路径的若干个属性. 1. gitattributes文件以行为单位设置一个路 ...

  2. git配置文件读取顺序

    作者:zhanhailiang 日期:2014-11-03 git包括三个配置文件: /etc/gitconfig 文件:系统中对全部用户都普遍适用的配置. 若使用git config 时用' –sy ...

  3. Git配置文件与git config命令

    在Git配置文件中配置变量,可以控制Git的外观和操作的各个方面.通过git config命令可以获得和设置配置变量. 一.Git配置文件的位置 这些变量可以被存储在三个不同的位置: 1./etc/g ...

  4. Window下的git配置文件在哪里【图文】

    来源:https://jingyan.baidu.com/article/870c6fc3589f22b03fe4be95.html 第一次使用码云建仓库总是提示各种错误,遂,从头在学一遍git,改篇 ...

  5. git配置文件

    在用git开发项目的时候,今天出现一个项目的文件权限发生变化的时候,没有忽略,用了以前同事给的命令行忽略权限变化的文件 git config --global core.filemode false; ...

  6. git学习——<二>git配置文件

    一.git所有配置文件 <一>./etc/gitconfig全局配置文件 修改该配置文件,会对所有用户有影响. 使用git config --system来配置该文件 <二>. ...

  7. 第2课 Git配置文件的妙用

    2-1 "git config"  指令的用法 文件夹中".git"子文件夹内的config文件的优先权>登录账号的home directory中的.gi ...

  8. git 配置文件

    设置记住密码(默认15分钟): git config --global credential.helper cache 如果想自己设置时间,可以这样做: git config credential.h ...

  9. git配置文件—— .editorconfig

    参考文档 editorconfig官方文档 github/editorconfig/wiki文档 一 概述 editorConfig不是什么软件,而是一个名称为.editorconfig的自定义文件. ...

随机推荐

  1. Android常见内存泄露

    前言 对于内存泄漏,我想大家在开发中肯定都遇到过,只不过内存泄漏对我们来说并不是可见的,因为它是在堆中活动,而要想检测程序中是否有内存泄漏的产生,通常我们可以借助LeakCanary.MAT等工具来检 ...

  2. numpy---python数据分析

    最后大图可点开保存 文章目录 最后大图可点开保存 学习目标 3.1.1Numpy介绍 3.1.2 ndarray介绍 3.1.3 ndarray与Python原生list运算效率对比 3.1.4 nd ...

  3. Medium高赞系列,如何正确的在Stack Overflow提问

    在我们写程序的时候,经常会遇到各色各样的问题,在国内,小伙伴们经常去知乎.CSDN.博客园.思否.安卓巴士等地方提问并获得答案. 这些地方汇集了很多优秀的.爱分享的国内资源.小编比较自豪的一件事情就是 ...

  4. 腾讯Techo开发者大会PPT分享

    腾讯云年度的开发者大会已经落幕,大会包括1场前沿技术主峰会,18个技术专场,150位海内外技术专家,28个互动展区,8场动手实验室,23小时小程序云开发极限编程,1场数据库诊断大赛. 内容上涵盖了最新 ...

  5. nyoj 54-小明的存钱计划 (遍历 + 判断)

    54-小明的存钱计划 内存限制:64MB 时间限制:3000ms Special Judge: No accepted:5 submit:11 题目描述: 小明的零花钱一直都是自己管理.每个月的月初妈 ...

  6. 树莓派3B/3B+和4B安装OpenCV教程

    安装前准备 在树莓派上拓展文件系统 如果你使用的树莓派为新装的系统,那么第一件事情就是扩展文件系统,以包括microSD卡上的所有空间. 具体步骤如下: 1.在树莓派终端(或者SSH)上输入: $ s ...

  7. JavaScript中解析JSON --- json.js 、 json2.js 以及 json3.js的使用区别

    JSON官方(http://www.json.org/)提供了一个json.js,json.js是JSON官方提供的在JavaScript中解析JSON的js包,json.js.json2.js.js ...

  8. openresty如何完美替换nginx

    下载openresty wget https://openresty.org/download/openresty-1.15.8.1.tar.gz tar zxvf openresty-1.15.8. ...

  9. WebSocket网络通信协议

    WebSocket 协议在2008年诞生,2011年成为国际标准.所有浏览器都已经支持了. HTTP 协议有一个缺陷:通信只能由客户端发起.这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端 ...

  10. Nvm安装步骤

    下载地址 https://github.com/coreybutler/nvm-windows/releases 解压压缩包,后是一个.exe结尾的安装文件,双击安装, 选择安装位置,如下图: 设置n ...