By francis_hao    Nov 19,2016

注:此条所有内容均来自$ git help gitignore,细节请参考之

 

有时候在仓库里有一些文件我们并不想提交,git提供了指定屏蔽文件的功能

可以在$GIT_DIR/info/exclude(和/或).gitignore文件中添加不想被追踪的文件,但如果文件之前已经被提交过,已经被git追踪了的话,再设置屏蔽文件就不会起作用了。

此功能实现的过程如下

  1. 从.gitignore文件中读取模式
  2. 从$GIT_DIR/info/exclude中读取模式
  3. 从配置变量core.excludesfile指定的文件中读取模式

这三个文件分别对应不同的应用场景:

"1" 本身也可以提交到版本库中由git控制版本,并可以在别人clone的仓库中生效。

"2"是用于比较私人的仅仅对于本仓库生效。

"3"也是用于私人的但是会对所有的仓库生效

模式匹配的格式:

  • 空行不起作用,因此在方便阅读的目的下可任意使用
  • #作为注释
  • !可以将之前的规则否决掉,这个在最后面的有效性越高
  • 以/结尾的模式仅仅匹配目录,不会对文件有影响,例如"foo/"仅匹配目录foo(不管它在几层目录下),而不会匹配文件foo
  • 没有/的情况,如果是.gitignore里的规则,则以.gitignore所在路径作为根路径,其他文件里的规则则以$GIT_DIR所在路径作为根路径的整个文件路径名内容作为匹配内容,例如规则为dir,则它会匹配dir/hello,dir/haha,info/jack/dir等
  • 模式"*"号默认不会匹配/,例如a/*.c会匹配a/a.c但是不会匹配 a/b/a.c。
  • 行首的/表示gitignore所涉及的路径,例如"/*.c"会匹配"cat_file.c"但不会匹配"Mozilla_sha1/sha1.c"

NOTE:

 


本文由 刘英皓 创作,采用 知识共享 署名-非商业性使用-相同方式共享 3.0 中国大陆 许可协议进行许可。欢迎转载,请注明出处:
转载自:http://www.cnblogs.com/yinghao1991/p/6081448.html

 

参考

[1] git help gitignore

 

git使用笔记(三)文件忽略的更多相关文章

  1. Liunx学习笔记(三) 文件权限

    一.文件权限 1.查看文件权限 (1)文件权限 在 Linux 中对于文件有四种访问权限,列举如下: 可读取:r,Readable 可写入:w,Writable 可执行:x,Execute 无权限:- ...

  2. Git学习笔记(三)

    Git提交相关内容 在Git提交时,会保存一个提交对象,该对象包括一个指向暂存区内容快照的指针,包括本次提交作者等相关附属信息,包括零个或多个指向该提交对象的父对象指针:首次提交时是没有祖先,普通提交 ...

  3. git学习笔记三

    1.每个分支的历史版本维护信息位置是.git/logs/refs/heads/master,这个位置的信息是文本文件,不是引用. harvey@harvey-Virtual-Machine:~/dem ...

  4. Git学习笔记三--管理修改、撤销修改、删除文件

    1.管理修改 什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git ...

  5. python学习笔记(三):文件操作和集合

    对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 文件基本操作: f = open('file.txt','r') #以只读方式打开一个 ...

  6. Git使用笔记三

    场景:开源社区提交代码每个人每一个MR只有两个commits,一个是merge前的,一个是merge时候的.因为他们不过是把自己在同一个PR上面提交的commits全部压缩成了一个而已.这个在git上 ...

  7. python学习笔记三 文件操作(基础篇)

    文件操作 打开文件 open(name[,mode[,buffering]])   open函数使用一个文件名作为强制参数,然后返回一个文件对象.[python 3.5 把file()删除掉]   w ...

  8. git 使用笔记(三)-分支的使用

    简单介绍 之前说过,每次修改之后,Git 并不是保存这些修改之后的差异变化,实际上就像一个照相机一样,将修改后的文件拍下作为文件快照,记录在一个微型的文件系统中.在 Git 中提交时,会保存一个提交对 ...

  9. git学习笔记 ---删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...

  10. APUE 学习笔记(三) 文件和目录

    1. 文件类型 文件类型信息包含在 struct stat 里的 st_mode 成员 (1)普通文件,unix内核并不区分文本文件和二进制文件 (2)目录文件,这种文件包含了其他文件的名字以及指向这 ...

随机推荐

  1. Python基础教程学记(1)

    引言 Python是什么?——Python是一种面向对象的解释性高级编程语言,具有动态语义.这句话的要点在于,Python是一种知道如何不妨碍你编写程序的编程语言.它让你能够毫无困难地实现所需的功能, ...

  2. 【ajax】ajax异步实现用户注册验证

    从前台到后台实现简单用户注册检查用户是否存在 1.编写domain public class User { private String username; private String passwo ...

  3. MVC5使用单选按钮与下拉框【转】

    某人认为下拉列表的呈现形式不如单选按钮漂亮,我只好去测试一下单选按钮与下拉框了.测试代码如下: 1.model类Blog.cs(类型使用枚举类型,自动生成的视图会以下拉列表形式显示): using S ...

  4. EIP权限工作流平台总结-1总体说明

      预览地址:www.eipflow.com (1) 权限工作流:www.demo.eipflow.com/Account/Login (2) 基础权限版:www.auth.eipflow.com/A ...

  5. 3468-A Simple Problem with Integers 线段树(区间增减,区间求和)

    A Simple Problem with Integers Time Limit: 5000MS   Memory Limit: 131072K Total Submissions: 110077 ...

  6. C++基础语言知识大汇总(不断更新!!!)

    经过十天的时间,LITTLESUN做好了前期的工作,今天LITTLESUN就要在新地图里扬帆起航喽!!!(撒花) 简单的整理了一下这次启航准备好的物资.后面的航程中也会不断来补充这个小仓库哦!

  7. crontab时间规则

    sudo crontab -e 5 * * * *每小时第5分钟执行*/5 * * * *每5分钟执行0 2 * * * 每天凌晨2点执行 cron是一个linux下的定时执行工具,可以在无需人工干预 ...

  8. leetcode 笔记5 single number

    question: Given an array of integers, every element appears twice except for one. Find that single o ...

  9. 深入浅出 Webpack

    深入浅出 Webpack 评价 Webpack 凭借强大的功能与良好的使用体验,已经成为目前最流行,社区最活跃的打包工具,是现代 Web 开发必须掌握的技能之一.作者结合自身的实战经验,介绍了 Web ...

  10. python下的自动化测试--selenium 验证码输入问题

    之前一直在研究scrapy下数据抓取,在研究ajax数据抓取时碰巧研究了一下selenium,确实很实用,不过只做scrapy下的数据抓取,不怎么合适,一是性能的损耗,一直需要开一个浏览器,二是对于爬 ...