gpt4 book ai didi

git - 如何通过删除历史记录中所有 Jupyter 笔记本的所有输出来缩小 git 存储库

转载 作者:行者123 更新时间:2023-12-03 08:09:37 25 4
gpt4 key购买 nike

我想通过删除存储库历史记录中每个 Jupyter 笔记本的所有输出来缩小 git 存储库。这可能吗?

最佳答案

是的,可以使用git filter-repo

  1. 安装git filter-repo
  2. 获取存储库的干净克隆,并确保保留备份,以防出现问题。
  3. 转到存储库的根目录,然后运行以下命令:
git filter-repo --blob-callback '
import json
try:
notebook = json.loads(blob.data)
if "cells" in notebook:
for cell in notebook["cells"]:
if "outputs" in cell:
cell["outputs"] = []
blob.data = (json.dumps(notebook, ensure_ascii=False, indent=1,
sort_keys=True) + "\n").encode("utf-8")
except json.JSONDecodeError as ex:
pass
except UnicodeDecodeError as ex:
pass
'

此命令将为历史记录中的每个 blob 调用 Python 代码,并尝试将其解析为 JSON。如果这有效并返回带有 "cells" 键的字典,那么我们(几乎肯定)正在处理 Jupyter 笔记本,我们可以遍历单元格并将输出替换为空数组。然后,代码使用 json.dumps() 将笔记本转储回文件,替换 blob 之前的数据。

我在一个有很多笔记本的存储库上尝试了这个,大约 200MB 大,然后它缩小到 20MB。我发现这很好,所以我想分享一下。

关于git - 如何通过删除历史记录中所有 Jupyter 笔记本的所有输出来缩小 git 存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71215104/

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