Jupyter Notebook和Git无缝集成方案( 二 )

----Jupyter Notebook和Git无缝集成方案//---- http://


Jupyter Notebook是一个强大的在线交互式编程平台 , 还是一种强大的文档处理平台 。 使用Jupyter Notebook制作教程和其他文档的方式非常方便 , 尤其是在文档编辑、代码处理和执行结果的交叉展现;对图形以及LaTeX编码的格式和公式处理也提供了很好的支持 。 甚至可以用来生成文档 , PPT展现等 。

但是Jupyter Notebook存在不必要的运行时缓存数据在于Git集成时会造成差异干扰 。 本文我们介绍一种通过jq单行脚本快速处理 , 并制作成强大的git clean fileter , 实现从Jupyter Notebook文件中删除不需要的缓存数据来实现Jupyter Notebook和Git的无缝集成 。

缘起

强大的Jupyter Notebook给我们使用带来便利 , 其基于.ipynb的项目保存和导入是个非常好的功能 , 可以让我们重现 , 以及和别人分享操作和界面 。 但是其基于所见即所得的编辑器存在一个一直以来共性的问题:其文档文件往往包含的内容不止是文本 , 因此很难用基于纯文本管理的版本控制工具处理 。 Jupyter 本身的.ipynb格式与纯文本格式的差异也不太大 , ipynb格式只一种自定义的JSON数据结构 , 偶尔还有嵌入的对图像和其他二进制数据base-64编码的blob数据 。 按理来说 , Git之类的VCS处理他们是绰绰有余的 。 但是其中base-64编码的blob数据较长时对其git diff比较变化差异时候就是个问题 。 尤其是需要多人协作的一个变化频繁的项目就是个很棘手的问题 。

推荐阅读