部分下载大git repo

时间:2013-03-13 17:05:17

标签: git git-svn

我正在尝试下载GCC Git repo,由于速度有限,下载时间太长。我只是想知道是否有可能下载部分回购。

我已经阅读了许多与下载单个文件夹或部分repo有关的文章和问题。但没有找到任何部分下载回购的文章或问题。所以,我有所有提交给我和Git同时可以更新未来的提交。

3 个答案:

答案 0 :(得分:3)

您可以尝试使用--depth选项下载截断的历史记录:

--depth <depth>
       Create a shallow clone with a history truncated to the specified number of
       revisions. A shallow repository has a number of limitations (you cannot clone or
       fetch from it, nor push from nor into it), but is adequate if you are only
       interested in the recent history of a large project with a long history, and
       would want to send in fixes as patches.

如果您只是想要这些文件,请执行:

git clone --depth 1 <repo>

答案 1 :(得分:1)

如果你看过How to complete a git clone for a big project on an unstable connection?,你会发现它现在不太可能。他们建议a couple of workarounds,但不保证。

但是,如果GCC有SVN repository,您可以使用git-svn作为explained here通过提交获取SVN的内容提交:

$ git svn -s clone svn://gcc.gnu.org/svn/gcc
Initialized empty Git repository in /home/desert69/gcc/.git/
r1 = b0439281e5f21d7567489ac582f45adfb813d332 (refs/remotes/trunk)
    A   gcc/config/m68k/xm-3b1.h
r2 = b24dd970fa8d03c1df555c4d771fa3dee00918de (refs/remotes/trunk)
    A   gcc/typeclass.h
r3 = 81e937b24b79225c9a61890f72737eba914dde22 (refs/remotes/trunk)
    A   gcc/config/m68k/x-apollo68
r4 = 0d9f9c476899983566408ee3698f097fa9d4ef5a (refs/remotes/trunk)
^C
$ cd gcc/
$ git svn fetch
    A   gcc/config/pyr/x-pyr
r5 = ff3c8016a7b2261c8df6c2564e76ad164b5a1a4a (refs/remotes/trunk)
    A   gcc/config/m68k/xm-crds.h
r6 = ff54129791033b73ffa49d12ec7802ca9b3010ea (refs/remotes/trunk)
(... goes on ...)

不幸的是svn使得它更容易比git,但是,很好,仅此而已。

答案 2 :(得分:0)

最简单的可能是启动ec2实例,在那里克隆repo并使用rsync提供服务。即使你已经使用了你的免费微实例年,需求微实例是0.05美元/小时,其基准8GB磁盘是0.88美元/月,流量可能适合免费GB(之后0.12美元/ GB出站)。即使花了一个星期的时间来获取也不会增加10美元。