windows上的Git clean filter python脚本

windows上的Git clean filter python脚本,python,git,git-filter,Python,Git,Git Filter,我试图添加一个git clean过滤器,以便忽略IPython笔记本文件中的输出和执行计数 我基本上遵循了(基于)并根据我的需要对其进行了轻微修改。另外,我使用的是Windows,因此,据我所知,不需要关于使python脚本可执行的部分(请参阅) 我想将它捆绑到我的存储库中,以便其他贡献者也能获得它。 我已将ipynb_drop_output.py保存在存储库的根目录下,并将gitconfig和gittributes文件保存在同一位置,因此在根目录下我有: .gitignore .gitconf

我试图添加一个git clean过滤器,以便忽略IPython笔记本文件中的输出和执行计数

我基本上遵循了(基于)并根据我的需要对其进行了轻微修改。另外,我使用的是Windows,因此,据我所知,不需要关于使python脚本可执行的部分(请参阅)

我想将它捆绑到我的存储库中,以便其他贡献者也能获得它。 我已将
ipynb_drop_output.py
保存在存储库的根目录下,并将gitconfig和gittributes文件保存在同一位置,因此在根目录下我有:

.gitignore
.gitconfig
.gitattributes
ipynb_drop_output.py
MyNotebook.ipynb
.gittributes
中:

*.ipynb filter=clean_ipynb
.gitconfig
中:

[filter "clean_ipynb"]
    clean = ipynb_drop_output.py
    smudge = cat
我已经手动测试了我的ipynb_drop_输出的代码,它工作得很好。然而,
git diff
仍然显示更改的执行计数和输出。脚本似乎根本没有运行

我想这可能是因为
clean=ipynb_drop_output.py
部分,但我尝试了各种变化:不包括.py,包括完整路径“C...ipynb_drop_output.py”,也包括前斜杠等

我的第二个理论是git只是不看.gitconfig文件,但我不清楚如何告诉它和/或如何检查它是否真的在看它。我认为git config--file.gitconfilter.clean_ipynb.clean ipynb_drop_output的目的就是要这样做


我怎样才能使它在Windows上工作呢?

假设您的存储库已在下面签出:
~/myrepo/

您需要告诉git在哪里可以找到您的repo-wide自定义
.gitconfig
,您希望所有用户都使用它。您可以通过以下方式实现:

cd ~/myrepo/
git config --local include.path ../.gitconfig
请注意,
。/
,由于
.gitconfig
.git/config
不在同一目录中,因此您尝试执行此操作时会丢失它。
~/myrepo/
的布局将具有:

.git/config
.gitconfig
.gitattributes
您需要将最后2个文件提交给您的回购协议

克隆repo后,所有用户都必须立即从上面执行
git config
命令,告诉git信任
~/myrepo/.gitconfig
。出于安全原因,不可能代表他们这样做

最后,手动错误配置失败的原因是git的设计允许可选配置文件。因此,在撰写本文时,如果在
.git/config
中您有:

[include]
    path = ../.gitconfig
并且,
。/.gitconfig
不在那里,git将自动跳过它。因此,如果您键入了错误的路径,它将跳过它


在这方面有了新的发展,而且。希望将来会有一种诊断此类git问题的方法。

这不应该在
.git/config
中,而不是
.gitconfig
中吗?链接的文章似乎暗示,如果您希望它传播给其他用户,就不应该这样做。使用git config--file.gitconfilter.clean_ipynb.clean ipynb_drop_output并在那里创建它。否则,您将使用git config--local。另请参见,重点是没有工具可以查看
.gitconfig
。您可以使用
git config
在任何地方编写文件;并不意味着任何东西都会读到,我明白你的意思。My./.git/config文件具有[include]path=.gitconfig您是否有机会使用它?