.gitignore忽略规则
大约 3 分钟
配置.gitignore忽略规则
.gitignore 过滤规则
#表示此为注释,将被Git忽略
#以斜杠"/"开头表示目录;
#以星号"*"通配多个字符;
#以问号"?"通配单个字符;
#以方括号"[]"包含单个字符的匹配列表;
#以叹号"!"表示不忽略(跟踪)匹配到的文件或目录;
# *.a 表示忽略所有 .a 结尾的文件
# !lib.a 表示但lib.a除外
# /TODO 表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
# build/ 表示忽略 build/目录下的所有文件,过滤整个build文件夹;
# doc/*.txt 表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
# bin/: 表示忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
# /bin: 表示忽略根目录下的bin文件
# /*.c: 表示忽略cat.c,不忽略 build/cat.c
# debug/*.obj: 表示忽略debug/io.obj,不忽略 debug/common/io.obj和tools/debug/io.obj
# **/foo: 表示忽略/foo,a/foo,a/b/foo等
# a/**/b: 表示忽略a/b, a/x/b,a/x/y/b等
# !/bin/run.sh 表示不忽略bin目录下的run.sh文件
# *.log: 表示忽略所有 .log 文件
# config.php: 表示忽略当前路径的 config.php 文件
# /mtk/ 表示过滤整个文件夹
# *.zip 表示过滤所有.zip文件
# /mtk/do.c 表示过滤某个具体文件
检查规则是否错误 git check-ignore
git check-ignore -v 文件名
保留一个空目录
项目有的时候为了代码目录的完整性,需要保留目录本身,目录里面的文件都忽略。比如涉及用户上传相关的文件需要忽略,而上传目录有的时候因为权限的问题无法自动创建,所以需要保留目录本身
在该目录下添加一个.gitignore文件内容如下:
*
!.gitignore
提示
还有一种情况是目录里面的文件不是忽略的,只是由于git无法提交空目录,所以可以在空目录中添加一个文件占位符,我们一般叫做.gitkeep文件,里面内容是空的,这样目录就可以提交了
重新添加已经被忽略过的文件(夹)
第一种方法 修改.gitignore文件规则,然后
git add .
第二种方法
提示
重新添加已经被忽略过的文件时,我们仅仅使用git add是不行的,因为git仓库中根本没有那个文件,这时候我们需要加上-f参数来强制添加到仓库中,然后在提交
git add -f 路径/文件
忽略已经提交过的文件
提示
有的时候我们需要忽略掉以前提交过的文件或者目录,因为git已经索引了该文件或目录,所以这时我们先在.gitignore中设置该文件为忽略 然后我们要删除掉缓存
忽略文件
git rm --cached -f 文件名
忽略目录
git rm -r --cached 目录/