Git设置忽略排除和重新添加已经被忽略过文件(夹)的方法

场景描述

在使用git的时候,项目开始我们设置了一些需要忽略的文件和文件夹,比如一些工程文件和项目依赖库,以免多个开发者本地环境不一样和工程文件过大的问题。但后期发现那些已经被我们忽略掉的文件需要重新添加或者忽略的文件夹里面有某个文件(夹)是需要大家一致的,需要设置一下排除,下面我们针对这两种场景讲一下解决办法

设置忽略排除

设置忽略我们通常是在.gitignore文件中设置,比如在laravel框架中我们设置忽略整个vendor文件夹,则在.gitignore中添加如下路径

/vendor/*

路径中的星号表示所有,如果需要这是后续的排除,这里的星号很重要

接下来我们设置忽略的文件夹中有一个文件夹里面的内容不需要忽略

!/vendor/laravel/framework/src/Illuminate/Auth/

!表示排除的意思,当然如果忽略某个文件就直接指定就行了,比如

!/vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php

好,设置忽略和设置忽略排除,这里就基本行了

重新添加已经被忽略过的文件(夹)

重新添加已经被忽略过的文件时,我们仅仅使用git add是不行的,因为git仓库中根本没有那个文件,这时候我们需要加上-f参数来强制添加到仓库中,然后在提交。比如上面设置了忽略排除的文件TokenGuard.php我们需要重新加入

git add -f /vendor/laravel/framework/src/Illuminate/Auth/TokenGuard.php

然后在commit和push就行了

忽略已经提交过的文件

这里说点题外话,有的时候我们需要忽略掉以前提交过的文件,因为git已经索引了该文件所以我们先要删除掉该文件的缓存,如文件User.php已经提交过了,现在我们想忽略,这是我们先在.gitignore中设置该文件为忽略,然后我们执行如下命令删除缓存

git rm --cached User.php

若是文件夹

git rm -r --cached folder/

然后我们在commit和push就好了

忽略目录中文件,保留目录结构

项目有的时候为了代码目录的完整性,需要保留目录本身,目录里面的文件都忽略。比如涉及用户上传相关的文件需要忽略,而上传目录有的时候因为权限的问题无法自动创建,所以需要保留目录本身。

我们只需要在需要保留的目录中添加一个.gitignore文件,内容如下

# ignore all except .gitignore file
*
!.gitignore

当然第一行是一个注释,可以去掉。如果先前目录是被忽略的,则需要用git add -f来强制添加在提交

还有一种情况是目录里面的文件不是忽略的,只是由于git无法提交空目录,所以可以在空目录中添加一个文件占位符,我们一般叫做.gitkeep文件,里面内容是空的,这样目录就可以提交了

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值