我有一个仓库,里面包含了相当重的二进制文件,这些文件更新得相当频繁(是的,我知道,这不是git的本意)。
虽然我想在服务器上(在我的情况下是Github)保留所有这些提交的版本,但我希望只下载最后一次提交。
目前,虽然文件本身只有1.5GB,但.git
文件夹超过10GB。
我想要的是一个持久的浅拷贝。
我想要一个git clone --depth=1
,但不是克隆它会“截断”本地历史到最后一次提交。
在一个新的浅克隆之后阅读git log
,我可以看到最后一次也是唯一一次提交是“grafted
”。这是什么意思?我该如何“重现”这种情况?
2条答案
按热度按时间uqcuzwp81#
我想看一下git的大文件:https://git-lfs.com/。之前有一些关于最小化git lfs仓库大小的问题:How to shrink a git LFS repo和Will Git LFS reduce the size of your repo?
xzlaal3s2#
除了Casper Knudsen建议的git LFS之外,还值得考虑git部分克隆。参见What is the git clone --filter option's syntax?,也是https://git-scm.com/docs/partial-clone的官方文档。这可能会允许您拥有完整的历史记录,但仅按需下载所需的blob。
我认为语法类似于
git clone --filter=blob:none <url>
或git clone --filter=blob:limit=<size> <url>
来指定大小限制,但可能还有其他方法可以使用部分克隆的特性来实现您的目标。