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

时间:2010-10-05 18:45:58

标签: git git-submodules

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

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

-my_project
    -submodule
        -code.py
    -MY_README
    -.git

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

-submodule
    -code.py
-README
-.gitignore

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

但是我在

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

后结束了这一点
-my_project
    -submodule
        -submodule
            -code.py
        -README
        -.gitignore
    -MY_README
    -.gitignore

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

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

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

3 个答案:

答案 0 :(得分:24)

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

请参阅重复How to change a git submodule to point to a subfolder?

的详细信息

答案 1 :(得分:8)

如果你:

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

直接在my_project下,你应该得到所需的目录组织。

来自git submodule add man page

  

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

答案 2 :(得分:3)

CollectionView

在项目的根目录中,它应该执行您想要的操作