git配置文件—— .gitattributes

.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的值。

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

时间: 2024-11-08 02:14:19

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

git配置文件读取顺序

作者:zhanhailiang 日期:2014-11-03 git包含三个配置文件: /etc/gitconfig 文件:系统中对所有用户都普遍适用的配置.若使用git config 时用' –system'选项,读写的就是这个文件. ~/.gitconfig 文件:用户目录下的配置文件只适用于该用户.若使用git config 时用' –global'选项,读写的就是这个文件. 当前项目的git 目录中的配置文件(也就是工作目录中的.git/config 文件):这里的配置仅仅针对当前项目有效

Git配置文件与git config命令

在Git配置文件中配置变量,可以控制Git的外观和操作的各个方面.通过git config命令可以获得和设置配置变量. 一.Git配置文件的位置 这些变量可以被存储在三个不同的位置: 1./etc/gitconfig 文件(系统级配置文件):包含了适用于系统所有用户和所有库的值.如果你传递参数选项’--system’ 给 git config,它将明确的读和写这个文件. 2.~/.gitconfig 文件 (用户级配置文件):具体到某个用户.如果你传递参数选项’--global’ 给 git c

git配置文件

在用git开发项目的时候,今天出现一个项目的文件权限发生变化的时候,没有忽略,用了以前同事给的命令行忽略权限变化的文件 git config --global core.filemode false;但是好像没有起作用,后来用git config --list显示的时候出现 最后发现在本项目的 .git/config里面的配置文件被修改了 最后百度发现原因,如下: Git 提供了一个叫做 git config 的工具,专门用来配置或读取相应的工作环境变量. 这些环境变量,决定了 Git 在各个环

git学习——<一>git配置文件

一.git所有配置文件 <一>./etc/gitconfig全局配置文件 修改该配置文件,会对所有用户有影响. 使用git config --system来配置该文件 <二>.~/.gitconfig当前用户配置文件 ~代表当前用户的家目录 使用git config --global来配置该文件 <三>..git/config版本库配置文件    在版本库中.git目录下 使用git config --local配置该文件 *三个配置文件,从上到下管理范围逐渐变小,操作

git 配置文件

在隐藏文件夹.git/config: [core]    repositoryformatversion = 0    filemode = false    bare = false    logallrefupdates = true    symlinks = false    ignorecase = true    hideDotFiles = dotGitOnly[remote "meicai"]    url = https://git.sprucetec.com/mei

git 突破大文件上传限制

1.安装 lfs: git lfs install 2.跟踪大文件:git lfs track "file.suffix" 3.添加配置文件:git add .gitattributes 之后正常提交,不过可能会遇到这个问题: Remote "origin" does not support the LFS locking API. Consider disabling it with:... 4.再执行此命令: $ git lfs push origin mast

git合并时忽略某个文件

因为开发现场跟部署的环境不同,有很多ip地址每次都要改来改去;于是开两个分支master(用来保存部署现场的ip)和dev(开发环境的ip),开发功能时在dev分支,然后使用master合并,每个分支都保存着自己的config配置文件,不想dev分支被master合并时config文件也合并. 创建自定义merge driver git config --global merge.ours.driver true 在要被merge的分支上创建.gitattributes文件,并且在文件中置顶不m

GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流(转载)

最近听同事说他都在使用GitHub,GitHub是程序员的社区,在里面可以学到很多书上学不到的东西,所以最近在准备入手这方面的知识去尝试学习,正好碰到这么详细完整的文章,就转载了,希望对自己和大家有帮助. GitHub操作总结 : 总结看不明白就看下面的详细讲解. GitHub操作流程 : 第一次提交 : 方案一 : 本地创建项目根目录, 然后与远程GitHub关联, 之后的操作一样; -- 初始化Git仓库 :git init ; -- 提交改变到缓存 :git commit -m 'desc

我的git与github学习历程

因为想要知道如何把代码放到github上,所以就百度了一下,然后找到一个<如何从github上面拷贝源码>的文章,就先进行练习了下 1.首先到git官网下载git版本控制工具的安装包,下载好双击安装,所有的步骤我都默认的. git官网:http://git-scm.com/download/ 2.然后安装完成我把没打勾的地方都打勾了,然后点击完成就出现如下图蓝色网页和黑色弹框,蓝色网页的网址: file:///D:/Program%20Files/Git/ReleaseNotes.html 看