如何只从 git 子模块克隆一个文件夹?

我试图从一个外部 github 回购文件夹中获取一个文件夹,以便在我的项目中使用。

我希望我的项目设置是这样的:

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

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

-submodule
-code.py
-README
-.gitignore

因此,我只希望子模块文件夹添加到我的项目。

但是在

Git 子模块 add < a href = “ http://github.com/user/submodule.git”rel = “ norefrer”>  http://github.com/user/submodule.git
之后我得到了这个

-my_project
-submodule
-submodule
-code.py
-README
-.gitignore
-MY_README
-.gitignore

我是新的 git,所以我真的不知道是否可能使用只是 git。如果有帮助的话,我正在窗口上使用 msysgit。

那么,我是否可以从一个公共回购中获得一个干净的子模块文件夹呢?

如果你很好奇我到底想做什么,我试图直接从他们的回购这些 django 插件 1 2添加到我的项目。

80744 次浏览

If you:

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

directly under my_project, you should end up with the desired organization of directories.

From git submodule add man page:

The optional argument <path> is the relative location for the cloned submodule to exist in the superproject.
If <path> is not given, the "humanish" part of the source repository is used ("repo" for "/path/to/repo.git" and "foo" for "host.xz:foo/.git").

What you want to do is not feasible because you cannot clone a part of a repository.

See details in duplicate How to change a git submodule to point to a subfolder?

just

git submodule update --init --recursive

in the root-directory of your project and it should do what you want