如何修改Git克隆功能

时间:2019-03-14 14:20:33

标签: git github jgit

由于我的工作需要,我只需要从远程git存储库下载./git/objects中的提交对象。 /.git/元数据包含一些有用的信息。但是在打包文件中包含commit / tree / blob对象。树/ blob对象太大,因此不应下载树/ blob对象。也许我需要重建git客户端或编写python脚本。

我看到了一些项目(例如https://github.com/lijiejie/GitHack)。它通过解析index文件逐步下载文件,最后在下载后将commit / tree / blob对象分开。 >

enter image description here

但是该方法需要通过HTTP访问.git文件夹,并且您不能直接从github下载索引文件。

我不明白github如何与git客户端通信。

我试图查看C(https://github.com/git/git)和Java(https://github.com/eclipse/jgit)的基础源代码,但是复杂的结构使我感到困惑。

有什么方法可以实现仅下载提交对象的功能?或者,我该如何帮助自己在基础源代码中找到关键代码。

如果您知道该怎么做,请告诉我。非常感谢。

PS:我需要从github / gitlab(公共存储库)下载.git的某个文件。但是github上的--filter=blob:none收录了warning: filtering not recognized by server, ignoring。 github的api有很强的局限性。

0 个答案:

没有答案