码农日记

薄洪涛的个人博客

git忽略上传配置文件

在使用git上传代码到github的时候,通常我们使用的编辑器(比如phpstorm等)会产生一些配置文件(.idea等),或者一些项目的配置信息,比如数据库信息;我们是不希望提交这些文件的;所以要用到一个git的忽略文件功能;

对于忽略文件,我们有两种情况:

1、忽略的文件已经上传,我们希望删掉代码库中的文件,保留本地的文件

2、忽略的文件还未上传

对于第一种情况,我们采用如下方式

git rm --cached -r .idea/    删除代码库中的文件
git commit -m '删除忽略文件'
git push origin master

对于第二张情况,我们需要配置.gitignore文件

针对你想忽略的文件,我们在项目的某个目录建立.gitignore文件,注意: 

  1. gitignore的作用范围是当前文件夹及其子文件夹;

  2.  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/就可以了


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

Powered By Z-BlogPHP 1.7.3

版权所有 | 转载请标明出处