8

我是 Git 新手。我想克隆一个大型远程存储库让我们说xyzcodebase。repo 的结构就像我有不同功能区域的 src 文件夹,如下所示。

xyzcodebase
|
|__ Func area 1
|
|__ Func area 2

因此,我在克隆时工作,Functional area 2我不想要Functional area 1(大尺寸)的代码,这将节省我的大量时间。所以克隆后Functional area 2我的本地存储库中只有源代码。

有没有办法完成对 git 存储库的这种选择性克隆?

在此先感谢您的帮助

4

3 回答 3

7

不,没有办法只克隆一个目录。Git 将历史记录存储为对整个存储库的更改,而不是仅将子树存储为 SVN。

如果您的项目包含多个功能,那么最好将其拆分为具有不同存储库的一些子项目,然后将其他存储库作为子模块包含在主项目中。但这取决于您的项目是如何组织的。

于 2011-08-18T12:36:38.000 回答
0

最近出现了一些对此的支持,但是 Git 服务器需要支持部分克隆,以便可以从生成的包文件中排除来自其他目录的对象。

另请参阅https://docs.gitlab.com/ee/topics/git/partial_clone.html#filter-by-file-pathgit-sparse-checkout

于 2020-04-30T15:48:58.123 回答
0

这是一个 hacky 解决方案,在特殊情况下可能会帮助您解决问题。特别是如果您只对单个文件感兴趣,您可以通过以下方式从控制台(在 Unix 中)简单地下载它wgetwget https://raw.githubusercontent.com/GITHUBUSER/REPOSITORY/master/file.ending

您可以通过在 github 中导航到特定文件的链接,然后单击“raw”。

于 2016-10-10T18:42:56.663 回答