Git Submodule to a subfolder

后端 未结 3 484
青春惊慌失措
青春惊慌失措 2020-12-09 02:36

In svn you can link a repository to any folder in another svn repository. I\'m wondering if there is a similar feature for git? Basically I want a git submodule inside my

相关标签:
3条回答
  • 2020-12-09 03:02

    Usually when you're trying to extract a subfolder of some other project, that subfolder should be a separate project in the first place, and both parent projects should be referring to it.

    You can extract such a subproject's history using a tool like git subtree. Then you can link the subtree back into your project using either git submodule or git subtree, whichever you prefer.

    0 讨论(0)
  • 2020-12-09 03:11

    Git does not support partial checkouts, so the submodule must point to a complete repository.

    This thread on the Git mail list provides some background information.

    This article from Panther Software offers some insight from someone else trying to accomplish a similar goal (i.e. replicate svn:externals using Git).

    If both projects are under your control, then I suggest you isolate the "subfolder" that you interested in to its own standalone repo. Then both projects can create submodules that link to it.

    0 讨论(0)
  • 2020-12-09 03:11

    I'm running into the same issue. It doesn't look solvable from a git level, at least not in a way that lets you easily pull or push to the parent repo.

    However, you can work around this limitation by using a simple symlink:

    1. Set up your submodule in a separate directory.
      • git submodule add http://example.com/repo.git ./submodules/repo
    2. Create a symlink to the subfolder in the place you want:
      • ln -s ./submodules/repo/subdirectory ./wherever/symlinked_directory

    References:

    • http://git-scm.com/book/en/Git-Tools-Submodules
    • http://www.cyberciti.biz/faq/unix-creating-symbolic-link-ln-command/
    0 讨论(0)
提交回复
热议问题