我是Git的新手。我想克隆一个大的远程存储库,让我们说xyzcodebase
。 repo的结构就像我有不同功能区域的src文件夹,如下所示。
xyzcodebase
|
|__ Func area 1
|
|__ Func area 2
我在Functional area 2
工作,因此在克隆时我不想要Functional area 1
(大尺寸)的代码,这将节省我的大量时间。因此,在克隆之后,我的本地存储库中只有Functional area 2
源代码。
有没有办法实现git存储库的这种选择性克隆?
提前感谢您的帮助
答案 0 :(得分:7)
不,没有办法只克隆一个目录。 Git将历史记录存储为整个存储库的更改,而不是仅将子树存储为SVN。
如果您的项目包含多个功能,那么最好将其拆分为一些子项目,使用不同的存储库,然后将其他存储库作为主项目中的子模块包含在内。但这取决于你的项目是如何组织的。
答案 1 :(得分:0)
这是一个hacky解决方案,在特殊情况下可能会帮助解决您的问题。具体来说,如果您只对单个文件感兴趣,可以通过wget
从控制台(在Unix中)下载它:
wget https://raw.githubusercontent.com/GITHUBUSER/REPOSITORY/master/file.ending
您可以通过在github中导航到特定文件的链接,然后点击" raw"。
答案 2 :(得分:0)
最近对此提供了一些支持,但是Git服务器需要支持partial clone,以便可以将其他目录中的对象从生成的打包文件中排除。
另请参阅https://docs.gitlab.com/ee/topics/git/partial_clone.html#filter-by-file-path和git-sparse-checkout。