## 参考资料:
* [git-忽略特殊文件-廖雪峰](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758404317281e54b6f5375640abbb11e67be4cd49e0000)
* [git ignore常见工程配置-github](https://github.com/github/gitignore)
## 实践总结:
* .gitignore 配置文件用于配置不需要加入版本管理的文件,配置好该文件可以为我们的版本管理带来很大的便利,以下是个人对于配置 .gitignore 的一些心得。
* 1、配置语法:
* 以斜杠“/”开头表示目录;
* 以星号“*”通配多个字符;
* 以问号“?”通配单个字符;
* 以方括号“[]”包含单个字符的匹配列表;
* 以叹号“!”表示不忽略(跟踪)匹配到的文件或目录;
* 此外,git 对于 .ignore 配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;
* 2、示例:
* (1)规则:
```
fd1/*
```
* 说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;
* (2)规则:
```
/fd1/*
```
* 说明:忽略根目录下的 /fd1/ 目录的全部内容;
* (3)规则:
```
/*
!.gitignore
!/fw/bin/
!/fw/sf/
```
* 说明:忽略全部内容,但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录;
## 实践场景:
* 利用.gitignore过滤文件,如编译过程中的中间文件,等等,这些文件不需要被追踪管理。
* 现象:
* 在.gitignore添加file1文件,以过滤该文件,但是通过git status查看仍显示file1文件的状态。
* 原因:
* 在git库中已存在了这个文件,之前push提交过该文件。
* .gitignore文件只对还没有加入版本管理的文件起作用,如果之前已经用git把这些文件纳入了版本库,就不起作用了
* 解决:
* 需要[在git库中删除该文件](http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758392816224cafd33c44b4451887cc941e6716805c000),并更新。
* 然后再次git status查看状态,file1文件不再显示状态。
## 相关指令:
* [git_status.md](http://www.kancloud.cn/wteamxq/git_rank/276485) 查看当前代码状态指令: 我是万能的检测器!