.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. sublime3中运行python文件

    sublime3中运行python文件 tools->build system->new build stystem 粘贴下面代码{"cmd":["pytho ...

  2. php 微信jssdk 微信分享一直报config:fail,Error: invalid signature(签名生成是一致的)

    php 微信jssdk 微信分享一直报config:fail,Error: invalid signature(签名生成是一致的) 里面url必须是当前的url比方说在A地址 请求获取jssdk参数 ...

  3. 学习下ElasticSearch

    ElasticSearch基础概念 Elasticsearch的Head插件安装 Elasticsearch在Centos 7上的安装常见的问题 使用场景:比如分库的情况下,你想统计所有数据的报表,就 ...

  4. nyoj 733-万圣节派对 (printf("%06d", i))

    733-万圣节派对 内存限制:64MB 时间限制:1000ms 特判: No 通过数:5 提交数:7 难度:1 题目描述: 万圣节有一个Party,XadillaX显然也要去凑热闹了.因为去凑热闹的人 ...

  5. django_1:配置文件

    工程下: settings.py(建议设置成如下) DATABASES                                   #数据库配置 DEBUG = True           ...

  6. oracle:表重命名

    SQL> rename test1 to test; Table renamed. SQL> alter table test rename to test1; Table altered ...

  7. 1 数据 & 图表

    瞎逼逼:虽然是统计专业,但学艺不精.大学受过的专业训练很少,妥妥学渣.因此工作后决定重新复习,阅读材料为贾俊平的<统计学>第7版.每周更新. 我不按照书里的逻辑顺序和所有知识点来写我的笔记 ...

  8. Hadoop MapReduce常用输入输出格式

    这里介绍MapReduce常用的几种输入输出格式. 三种常用的输入格式:TextInputFormat , SequenceFileInputFormat , KeyValueInputFormat ...

  9. img标签不能直接作为body的子元素

    前几天在一本教材上看到关于HTML标签嵌套规则一节的时候,看到这么一句话,“把图像作为body元素的子元素直接插入到页面中,这样是不妥的,一是结构嵌套有误,二是图像控制不方便.”后面还给了一段代码演示 ...

  10. ubantu删除源码安装文件

    1.在安装目录下执行 make uninstall (如安装目录为/opt/software/opencv3.1.0/release) 2.删除系统相关文件 cd /usr sudo find . - ...