git忽略上传配置文件
在使用git上传代码到github的时候,通常我们使用的编辑器(比如phpstorm等)会产生一些配置文件(.idea等),或者一些项目的配置信息,比如数据库信息;我们是不希望提交这些文件的;所以要用到一个git的忽略文件功能;
对于忽略文件,我们有两种情况:
1、忽略的文件已经上传,我们希望删掉代码库中的文件,保留本地的文件
2、忽略的文件还未上传
对于第一种情况,我们采用如下方式
git rm --cached -r .idea/ 删除代码库中的文件 git commit -m '删除忽略文件' git push origin master
对于第二张情况,我们需要配置.gitignore文件
针对你想忽略的文件,我们在项目的某个目录建立.gitignore文件,注意:
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 表示过滤某个具体文件
对于上诉需求,我们只需要在.gitignore文件中填写.idea/就可以了
如果,我们希望所以的项目都不提交.idea/目录,就需要全局配置了
git config --global core.excludesfile '~/.gitignore'
在这个用户目录下的.gitignore中添加要排除的文件夹 ,然后添加.idea/就可以了