2010-03-03 46 views

回答

3

dir内的所有文件夹(文件)如果您使用的是latest Git1.7.0,它提供了一个稀疏结账功能。

“稀疏结帐”功能只允许检出部分工作树。

更多见Git Sparse Checkout SO question:你仍然需要克隆所有回购,但你可以检出(即填写你的工作树)用克隆的回购只有部分)


唯一其他方式会将design转换为子模块。
由于GitPro book mentions

Git的子模块支持允许存储库包含作为子目录,外部项目的结算。
子模块保持自己的身份;子模块支持仅存储子模块存储库位置和提交ID,因此克隆包含项目(“超级项目”)的其他开发人员可以轻松地克隆相同修订版本中的所有子模块。
超级项目的部分签出是可能的:您可以告诉Git克隆没有,部分或全部子模块。

子模块我知道,实现“局部克隆”,因为n您的情况下,它是克隆一部分是有问题的唯一途径。
从您的评论:

我的问题是,设计文件夹是一些700 MB; git svn clone需要几个小时。整个项目的其余部分放在一起是在10几MB。

但是,这意味着修改SVN回购的,以分离作为design“外部”参考,然后git svn clone并添加在克隆git仓库的子模块参考。

+1

谢谢!但我的问题是设计文件夹大约700 MB; git svn clone需要几个小时。整个项目的其余部分放在一起是在10几MB。首先我知道这是错误的,把它放入回购。但我想用一些理智的方式在本地使用git进行处理。似乎不可能,然后 – 2010-03-03 14:51:18

+0

@ becomingGuru:理智的方法是将其拆分回来,并将其设计分离出来,作为子模块引用。这样,你就可以完全*实现你正在寻找的东西。见http://stackoverflow.com/questions/359424/detach-subdirectory-into-separate-git-repository – VonC 2010-03-03 15:02:28

2

可以使用--ignore-paths=<regex>选项git svn initgit svn fetch,或svn-remote.<name>.ignore-paths添加配置选项.git/config。这被记录为“这允许指定一个Perl正则表达式,这将导致SVN从结帐中跳过所有匹配的路径。”有关更多详细信息,请在manual中搜索“忽略路径”。

this answer中尝试实验后,我得知正则表达式似乎应用于存储库根目录或文件的完整路径。因此,如果你有一个标准的版本库布局,并且想从每个trunk/branch /标签中排除相同的东西,你可以使用像^(trunk|((branches|tags)/[^/]+))(<file-to-ignore>|<other-file-to-ignore>)这样的正则表达式。