日常操作中,我们往往会出现由于git仓库不断的增加的原因,而需要添加更多的过滤文件的情况。
但这时,我们又发现虽然在**.gitignore**添加过滤条件,却无法生效。一般的这种情况是由于在添加 .gitignore之前对过滤文件已进行过操作,在git记录中已存在了操作记录,导致后续过滤条件不成立。这个问题的解决方式我们可以通过两种方法来解决:
整库更新
删除缓存
由于是之前对过滤文件已经进行过操作,所以在开始过滤前需要对本地和远程分支进行缓存删除操作。需要注意的是在擦欧总之前可以暂时备份一个.gitignore文件。
$git pull origin master
$git rm -r --cached .
更新过滤规则
删除git缓存后,我们需要将新的过滤规则进行更新,此时的所有文件都是初始状态,需要重新将文件添加到git库
$git status
$git add .
commit并提交记录
之后我们就可以通过commit 来进行常规性操作即可。
F:githubenjoytodayAdmin>git commit -m "update ignore."
[master eb05743] update ignore.
13 files changed, 733 insertions(+), 1571 deletions(-)
delete mode 100644 .idea/dataSources.local.xml
delete mode 100644 .idea/dataSources.xml
delete mode 100644 .idea/deployment.xml
delete mode 100644 .idea/enjoytodayAdmin.iml
delete mode 100644 .idea/inspectionProfiles/Project_Default.xml
delete mode 100644 .idea/misc.xml
delete mode 100644 .idea/modules.xml
delete mode 100644 .idea/remote-mappings.xml
delete mode 100644 .idea/vcs.xml
delete mode 100644 .idea/workspace.xml
局部删除更新
如上方法虽可解决,但对仓库整体的更新较大。这时,我们可以通过局部更新的方式来解决这个问题。
同步远程仓库并将我们需要新增的过滤文件移除git
$git pull origin master
$git rm .idea/deployment.xml
$git rm .idea/enjoytodayAdmin.iml
更新.gitignore文件并commit、提交远程库
$git add .gitignore
$git commit -m "update .gitignore"
$git push origin master