首先为什么要设置忽略文件呢?在进行协作开发代码管理的过程中,常常会遇到某些临时文件、配置文件、或者生成文件等,这些文件由于不同的开发端会不一样,如果使用git add . 将所有文件纳入git库中,那么会出现频繁的改动和push,这样会引起开发上的不便。
Git可以很方便的帮助我们解决这个问题,那就是建立项目文件过滤规则。
git忽略文件有三种:
1、全局范围内有效的忽略文件
就是"版本库根目录/.git/info/exclude",全局范围内的所有忽略规则都以行为单位写在这个文件中;
2、局部范围内有效的忽略文件
就是.gitignore,这个忽略文件只对某一级目录下的文件的忽略有效;
如果某一个目录下有需要被忽略的文件,那么就可以在该目录下手工地创建忽略文件.gitignore,
并在这个忽略文件中写上忽略规则,以行为单位,一条规则占据一行;
比较特殊的情况就是在版本库的根目录下创建一个忽略文件.gitignore,这时,
这个.gitignore忽略文件就对版本库根目录下的文件有效,等价于全局范围内的忽略文件.git/info/exclude;
3、手工指定一个忽略文件,
该忽略文件中的规则和语法与前两种是一致的,随便哪一级目录都可以,只要加上对应的路径即可;
手工指定忽略文件的命令是:
git config --global core.excludesfile /path/to/.gitignore
然后手工地在对应位置创建忽略文件.gitignore,并在该文件中写入忽略规则即可;
由于每一种级别的混略文件都是一致的所以今天主要介绍的是第二种.gitignore
1、配置语法:
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
2、示例:
(1)规则:fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
(2)规则:/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;
(3)规则:
/*
!.gitignore
!/fw/bin/
!/fw/sf/
说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
我们用coding管理代码,在创建项目的时候可以创建.gitignore文件
我们来看生成的.gitignore文件
如果我们的项目中用到了cocopods的话很显然这些忽略文件是不够的,我们需要忽略podfile.lock文件
如果我们需要在当前工作目录添加文件忽略
对于每一级工作目录,创建一个.gitignore文件,向该文件中添加要忽略的文件或目录。
但在创建并编辑这个文件之前,一定要保证要忽略的文件没有添加到git索引中。
使用命令git rm --cached filename将要忽略的文件从索引中删除。
网友评论