git From this StackOverflow thread
With git subtree
 you can:
-
create a monorepo composed of subtrees, each of which can be linked to separate remote repos
-
have a single aggregate/unified history (the point of a monorepo)
-
pull changes from subtree remotes into the monorepo
-
push changes made in any subtree of the monorepo to its separate remote
-
keep your simple/easy workfows.
git subtree
 does not require users of your repository to learn anything new. They can ignore the fact that you are usingÂgit subtree
 to manage dependencies.”