Git repository within Git repository [duplicate]
Use git subtree
in git version 1.7.11 and above. git subtree
is superior to git submodule because:
- Management of a simple workflow is easy. Older versions of git aresupported (even before v1.5.2)
- The sub-project’s code is available right after the clone of the super project is done
git subtree
does not require users of your repository to learn anything new, they can ignore the fact that you are using subtree to manage dependenciesgit subtree
does not add new metadata files likegit submodule
does (such as.gitmodule
)- Contents of the subtree can be modified without having a separate repository copy of the dependency somewhere else
Additionally, if you need to detach a subtree of your existing repository into a new repository, git subtree split
can help you with that.
UPDATE February 2020: Nowadays I like subrepo even more.
You can nest two git repo's without using submodules. Suppose ChildRepo is a subdirectory of ParentRepo, and both are git repositories.
+ ParentRepo - ChildRepo
If you add a file to ChildRepo, ParentRepo will ignore it. When you commit it it will be added to ChildRepo. It is not possible to add files within ChildRepo to ParentRepo.
More info: Nested GIT repo gotchas!