.gitignore

           在使用git进行代码的版本控制时,可能存在一些本地工作区中的文件你不想同步到远程服务器,比如程序需要的数据(可能特别大),或者一些数据库的配置文件(里面包含密码等私密信息),那么就可以设置.gitignore文件达到目的。

.gitignore匹配规则

1.忽略文件夹

   dir/ ,注意这不仅会忽略项目根目录下的dir文件夹,其他目录如dir1/dir2/dir中的dir目录 也会被忽略(其中dir1位于项目根目录下),所以利用这种方法设置时要注意。如果只想忽略某一个确定的文件夹,设置绝对路径即可。总结如下:

   (1) dir/ 忽略所有的dir文件夹

   (2)只想忽略根目录下的dir文件夹

               /dir/

    (3)只想忽略某一个目录下的dir文件夹

             dir1/dir2/dir

2.忽略文件

   和忽略文件夹类似:

 (1)  test.txt 忽略所有的test.txt文件

  (2) /test.txt 忽略根目录下的test.txt文件

  (3)dir1/dir2/test.txt  忽略某一个目录下的test.txt文件

 

3.添加文件到让git管理

     唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中

     如 !dir1/dir2/test.txt  会将路径下的test.txt添加到版本管理中

     为什么需要这种添加规则呢?

       想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管           理,那么我们就需要使用:

        1)/mtk/

         2)!/mtk/one.txt

假设我们只有过滤规则,而没有添加规则,那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来!

 

4.如果一个文件 /mtk/one.txt 已经存在于远程仓库了,后来由于改动,不再想管理这个one.txt文件,这时候并不是单纯的设置一下过滤规则就行了,也就是说这时候在.gitignore中加入one.txt的过滤规则已经不起作用了,这是因为我们误解了.gitignore 文件的用途,该文件只能作用于 Untracked Files,也就是那些从来没有被 Git记录过的文件(自添加以后,从未 add 及 commit 过的文件)。之所以规则不生效,是因为one.txt 文件曾经被 Git 记录过,因此 .gitignore 对它们完全无效。所以需要先将one.txt变成Untracked Files,也就是在git的数据库中删除对one.txt的追踪,利用 git rm --cached/mk/one.txt即可删除追踪,然后修改.gitignore文件,然后commit+push发现远程仓库已经不存在one.txt,接下来再进行git操作时one.txt文件将会被过滤。

 

 

参考 <https://segmentfault.com/q/1010000000430426>

      <https://www.cnblogs.com/kevingrace/p/5690241.html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值