gpt4 book ai didi

python - Windows 上的 Git clean-filter python 脚本

转载 作者:太空狗 更新时间:2023-10-30 01:28:29 24 4
gpt4 key购买 nike

我正在尝试添加一个 git clean-filter 以忽略我的 IPython 笔记本文件中的输出和 execution_count。

基本都关注了this article (基于 this SO answer )并根据我的需要对其进行了稍微修改。另外,我在 Windows 上,所以据我所知不需要关于使 python 脚本可执行的部分(参见 Python FAQ)。

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

.gitignore
.gitconfig
.gitattributes
ipynb_drop_output.py
MyNotebook.ipynb

.gitattributes 中:

*.ipynb filter=clean_ipynb

.gitconfig 中:

[filter "clean_ipynb"]
clean = ipynb_drop_output.py
smudge = cat

我已经手动测试了 ipynb_drop_output 的代码,它运行起来非常棒。然而 git diff 仍然显示 execution_count 和改变的输出。脚本似乎根本没有运行。

我认为这可能是因为 clean = ipynb_drop_output.py 部分,但我已经尝试了所有变体:不包括 .py,包括完整路径“C ...\ipynb_drop_output.py",也有正斜杠等。

我的第二个理论是 git 只是没有查看 .gitconfig 文件,但我不清楚如何告诉它和/或如何检查它是否真的在查看它。我认为 git config --file .gitconfig filter.clean_ipynb.clean ipynb_drop_output 的意义在于做到这一点......

请问如何让它在 Windows 上运行?

最佳答案

假设您已在以下位置 checkout 存储库:~/myrepo/

您需要告诉 git 在哪里可以找到您希望所有用户使用的 repo-wide 自定义 .gitconfig。你通过运行来做到这一点:

cd ~/myrepo/
git config --local include.path ../.gitconfig

请注意 ../,您尝试使其工作时缺少它,因为 .gitconfig.git/config 不是在同一目录中。您的 ~/myrepo/ 的布局将具有:

.git/config
.gitconfig
.gitattributes

您需要提交到您的存储库的最后 2 个文件。

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

最后,您的手动不正确配置悄无声息地失败的原因是因为 git 是以这种方式设计的,以允许可选的配置文件。所以在撰写本文时,如果在你的 .git/config 中你有:

[include]
path = ../.gitconfig

../.gitconfig 不存在,git 会默默地跳过它。因此,如果您输入了错误的路径,它将跳过它。

这方面有了新的发展,the jury is still out .希望将来会有一种方法来诊断此类 git 问题。

关于python - Windows 上的 Git clean-filter python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31203634/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com