Loading

6.Git忽略文件

忽略指定文件
有些文件与实际功能无关,不参与服务器上部署运行,把他们忽略调能够屏蔽ide工具之间的差异
1.在工作区目录下创建xxx.gitignore文件 (前缀名随意)
以斜杠“/”开头表示目录;
以星号“*”通配多个字符;
以问号“?”通配单个字符
以方括号“[]”包含单个字符的匹配列表;
以叹号“!”表示不忽略(跟踪)匹配到的文件或目录

*:用来匹配零个或多个字符
*.a表示忽略.a文件;
*.[oa]表示忽略所有以.a和.o结尾的文件,*~忽略所有以~结尾的文件;
[]用来匹配括号内的任一字符,如[abc],也可以在括号内加连接符,如[0-9]匹配0至9的数;
?用来匹配单个字符;
!:用来否定忽略
比如前面用了*.txt,然后使用!*a.txt,则这个a.txt不会被忽略
/:
正斜杠在前:匹配项目跟目录;如/bin表示忽略根目录下的bin文件,/bsp表示忽略根目录下的bsp文件夹,但不忽略子目录里的user/bsp文件夹;
正斜杠在后:匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;如bsp/表示忽略bsp文件夹里的所有文件;
**:匹配多级目录,可在开始,中间,结束;
# 忽略所有 .a 结尾的文件
*.a
# 但 lib.a 除外
!lib.a
# 仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
/TODO
# 忽略 build/ 目录下的所有文件
build/
# 会忽略 doc/notes.txt 但不包括 doc/server/arch.txt
doc/*.txt
# 会忽略掉 doc/ 里面所有的txt文件,包括子目录下的(**/ 从 Git 1.8.2 之后开始支持 **/ 匹配模式,表示递归匹配子目录下的文件)
doc/**/*.txt
local.properties #过滤具体文件
!local.properties#添加具体文件
*.[oa]#忽略所有以 .o 或 .a 结尾的文件
    
# 如果你创建.gitignore文件之前就push了项目,那么即使你在.gitignore文件中写入新的过滤规则,这些规则也不会起作用,
2.命令检查
git check-ignore -v 文件路径 #检查当前文件被哪个配置忽略了
3.忽略优先级
从命令行中读取可用的忽略规则
当前目录定义的规则
父级目录定义的规则,依次递推
$GIT_DIR/info/exclude 文件中定义的规则
core.excludesfile中定义的全局规则
4.在.gitconfig文件中引用.gitignore
vim  ~/.gitconfig
# 新加
[core]
        excludesfile = 路径/xx.gitignore

 

posted @ 2022-07-07 15:56  木子七  阅读(440)  评论(0编辑  收藏  举报