起因
在日常开发中多人协作开发需要代码托管平台git 或svn等。在使用git管理代码上传想忽略一些私密或者无关紧要的文件,另本人开发的代码是微服务的形式,很多代码结构目录层次几乎相同,其中temp(我想忽略的文件夹) 存了一些log啊或者dump文件等等吧, 这些文件无需上传需要忽略,上传了浪费不必要的空间 而且push clone 也会非常慢,浪费带宽流量等等.....
解决
起初动手操作配置成了这样:
更多重复的前缀这种方式可以忽略,貌似不错,但不友好,微服务这种几十几百个工程模块,配置是很麻烦或者说忘记配置了等等原因,于是看了些文档,再加上自己反复尝试,最终找到了方法:
temp // 忽略的文件夹名字
忽略的文件夹名字,我的是忽略所有temp文件夹,是模糊查找的方式,子目录中有temp就会忽略,嗯。。。哭笑不得 就这么简单。
到这问题基本上解决了。
问题
不过到这还没有完需要注意一个问题,直接使用目录名称这种方式是可以忽略,但是这种方式相当于是模糊匹配查找的方式,还是拿 temp 目录来说。有这样一个场景,项目因为网路问题不能通过联网的方式从代码托管平台下载依赖的代码,此时我们提前下好依赖代码放入到代码仓库中,比如vendor中进行管理,我们本意是想忽略我们自己创建的temp目录,但恰好我们vendor依赖的代码中恰好有temp目录得代码,也就是说上述配置中会忽略该目录中的temp代码目录,这是我们不想看到的,我们有两种方案应对如下:
方案一:
采用精准忽略方式(这种方式退化成了每个项目都要写忽略文件方式)
方案二:
采用互斥的配置方式
temp // 或略所有temp目录模糊匹配查找方式, 可以理解为 */temp/*
!/vendor/** // 排除当前(以.gitignore文件所在的目录为根目录)根目录下vendor目录下所有的目录,与上面temp目录配置互斥,此vendor不会忽略temp目录
工具
我用的是goland,下图中用的是ide编译器的插件, jetBrains系列都是相同的,建议下个.gitignore插件编写文件更方便些会有些提示,或者使用插件自带的功能鼠标右键会把选中的文件目录写入到.gitignore中也是挺方便的。
插件带的功能 编译器集成git自带的以上两种方法都可以,对选中的文件或文件夹都可以操作。
完~
网友评论