在本地git配置中覆盖带有污迹和猫的过滤器

问题描述

我具有全局过滤器,以便清除Jupyter笔记本的输出。我在git中使用以下--global设置:
.gitconfig

filter.clean_ipynb.clean=/home/username/.scripts/ipynb_drop_output.py
filter.clean_ipynb.smudge=cat

.gitattributes:

*.ipynb filter=clean_ipynb

现在我有一个不希望使用此过滤器的存储库,在本地存储库中重写此存储的最佳方法是什么?

解决方法

在您要覆盖此.gitattributes设置的一个存储库的$GIT_DIR/info/attributesfilter文件中, 1 使用:

*.ipynb !filter

filter设置恢复为“未指定”。

这适用于所有属性,而不仅仅是filter。由于filter仅在将其设置设置为某个特定值时才起作用,因此-filter也将起作用。并且由于filter仅取一个值,因此只要您没有filter=dummy设置,filter.dummy.*也可以使用。但是!filter是必经之路。


1 如果要新克隆复制此设置,请使用.gitattributes。如果您要 not 复制新设置,请使用$GIT_DIR/info/attributes。这也是一种通用模式。