如何克隆/获取仅获取历史记录的repo

时间:2016-06-07 15:54:13

标签: git

是否可以下载存储库的提交,分支和标记,不包括blob和树?我希望能够在不下载文件的情况下查看历史和诸如此类的内容(这是针对Chromium repo,这是多次演出)。显然,我无法看到哪些文件受到提交的影响,但这很好。

4 个答案:

答案 0 :(得分:8)

不,或者至少不使用任何普通访问权限。有些站点提供Web访问,通过它可以获取每个提交对象的内容,而无需获取树和blob对象,但接收对象或瘦包的正常过程在提交级别被截断(通过--depth)或者是完整的。

您当然可以使用git ls-remote以及通过任何合理的网络界面查看所有可见标签(如果您没有提供,那么提供类似GitHub的花哨API会很奇怪标签:-))。

请注意,通过Web API遍历所有提交可能会非常缓慢,这可能是由于必须停止并等待(如果您同步编程而不是作为流处理)或者由于主机上的速率限制软件(GitHub和Bitbucket似乎都在进行速率限制。)

答案 1 :(得分:5)

  

我们正在构建ghuser.io(增强的GitHub个人资料页面),任何无需文件即可获取提交历史记录的方法都将极大地帮助我们扩展规模。

然后,您需要设置支持GVFS (Git Virtual File System) / VFS For Git的镜像服务器。

自2016年6月(OP问题)到现在(2018年第四季度),Microsoft提出了 VFS for Git (由于issue 72即将到be resolved)( Feb. 2017),并允许您使用TeraBytes repos(!)进行开发,而无需下载文件。

GitHub本身应尽快提供支持。

gvfs.io中查看更多信息,尽管我怀疑现在已重命名以反映新的“ VFS For Git”名称的域名:https://vfsforgit.org。 > (Microsoft/VFSForGit.WWW issue 9 is closed, Nov. 28th 2018

答案 2 :(得分:0)

在git 2.19中添加了“部分克隆”功能。

此处的文档:https://www.git-scm.com/docs/partial-clone

要使用它:

  • 服务器和客户端上都需要git> = 2.19
  • 在服务器上,您需要启用以下功能:git config --global uploadpack.allowFilter true
  • git clone --filter=tree:0 REMOTE_URL

答案 3 :(得分:-1)