如何从git子模块中仅克隆文件夹?

dem*_*ula 68 git git-submodules

我正在尝试从外部github仓库获取一个文件夹,以便在我的项目中使用.

我希望我的项目设置如下:

-my_project
    -submodule
        -code.py
    -MY_README
    -.git
Run Code Online (Sandbox Code Playgroud)

我有一个名为some-submodule的远程repo,结构如下:

-submodule
    -code.py
-README
-.gitignore
Run Code Online (Sandbox Code Playgroud)

所以我只想将子模块文件夹添加到我的项目中.

但是之后我最终得到了这个

git submodule add http://github.com/user/submodule.git submodule

-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore
Run Code Online (Sandbox Code Playgroud)

我是git的新手所以我真的不知道是否可以使用git.如果它有一些帮助我在Windows上使用msysgit.

那么,无论如何我可以从公共仓库中获得一个干净的子模块文件夹吗?

如果你对我正在尝试做的事情感到好奇,我试图直接从他们的repos这些django插件1 2中将它们添加到我的项目中.

dre*_*gad 26

您想要做的是不可行的,因为您无法克隆存储库的一部分.

一式两份详细信息如何更改git子模块以指向子文件夹?

  • 虽然严格来说,不可能克隆存储库的仅一部分,但是由于Git 1.7可以解决OP可能想要的问题,因此存在**稀疏签出**。参见/sf/ask/42005561/ (3认同)

Von*_*onC 8

如果你:

git submodule add http://github.com/user/submodule.git
Run Code Online (Sandbox Code Playgroud)

在直接下my_project,您应该最终得到所需的目录组织.

git submodule add手册页:

可选参数<path>是克隆子模块在超级项目中存在的相对位置.
如果<path>没有给出,则使用源存储库的"人道"部分("repo"表示" /path/to/repo.git"和" foo"表示" host.xz:foo/.git").