nbstripout:`diff = ipynb`在.gitattributes中做什么?

Leo*_*ang 7 git jupyter-notebook

我在提交之前使用 nbstripout 删除 Jupyter 输出。nbstripout 生成一个.gitattribute如下所示的文件:

*.ipynb filter=nbstripout

*.ipynb diff=ipynb
Run Code Online (Sandbox Code Playgroud)

这按预期工作,每当 I git statusgit diff、 或时git commit,它不包括 Jupyter 输出。但是,当我删除第二行时,它会执行相同的操作。

在这种情况下做什么*.ipynb diff=ipynb

Von*_*onC 3

diff当属性设置为字符串时,引用 diff 驱动程序。

但第一个属性使用相同的命令引用内容过滤器驱动程序。
由于在执行 git diff 时涉及内容过滤器驱动程序(通过 smudge 命令),因此它会执行相同的操作(这意味着与索引相比,它会更改工作树文件的内容)