【Git全局过滤】全局过滤配置文件.gitignore_global使用方法 + 局部和全局配置文件优先级问题

一、配置全局过滤

Step1:在根目录新建一个 .gitignore_global 文件,在里面添加忽略的规则

Step2:在 ~/.gitconfig 中添加 excludesfile 配置,即

git config --global core.excludesfile ~/.gitignore_global

效果图

在这里插入图片描述

vim .gitignore_global

# ============================================
# ignore all the *.tar.gz file including subdir
*.tar.gz

# ============================================
# ignore all the .history dir including subdir
.history/
.ipynb_checkpoints/

Step3: 如果你设置完配置文件,发现你的git仓库还是无法像你想的一样顾虑掉文件,请看下面 第二部分第三部分 的说明

二、局部配置优先于全局配置

设置全局过滤配置文件 .gitignore_global 后,如果在某个版本库里也设置了.gitignore (局部过滤配置文件),那 git 会优先考虑局部的过滤规则,然后再考虑全局

举个例子:

在全局你设置了过滤.ipynb_checkpoints/,而在局部设置了!.ipynb_checkpoints/,则当前git仓库库不会过滤掉 .ipynb_checkpoints 文件夹
在这里插入图片描述

在这里插入图片描述

三、文件夹 .ipynb_checkpoints 之前已提交远端,无法再顾虑?

问题描述

我明明设置好了全局过滤,并且局部没有冲突,但为什么还是无法过滤掉某个文件夹呢

在这里插入图片描述

分析原因

添加忽略之后,已经提交到版本库中的文件是无法忽略的。因为 .gitignore 只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法

方法一

先把本库文件中需要过滤的文件移到本库外面,提交一次,更新项目库;然后再把这些文件移回原来的位置,再提交一次就会过滤掉这些文件了。

方法二(推荐)

可以Google搜索 git rm命令 去删除已经添加到仓库的文件

(1) 删除已经添加到远端的.DS_Store文件

  1. 删除已经加到远端的当前目录下的.DS_Store文件

git rm --cached .DS_Store

  1. 删除已经加到仓库的所有目录下的.DS_Store文件

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch

(2) 删除已经添加到远端的 .ipynb_checkpoints文件夹

find . -name .ipynb_checkpoints -print0 | xargs -0 git rm -r --ignore-unmatch

执行后git版本历史会删除所有已提交的 .ipynb_checkpoints 文件夹,注意这时并没有删除你本地的.ipynb_checkpoints 文件夹

如果出现一下报错
在这里插入图片描述
使用下面命令即可

find . -name .ipynb_checkpoints -print0 | xargs -0 git rm -r --cached --ignore-unmatch

四、过滤规则语法

.gitignore(局部)或.gitignore_global(全局)过滤配置文件的规则语法,请看 这里

官方文档:https://git-scm.com/docs/gitignore

五、相关参考

How to add subfolder to gitignore file?

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

捡起一束光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值