Managing Subprojects
In Chapter 6, Collaborative Development with Git, we learned how to manage multiple repositories, while Chapter 8, Advanced Branching Techniques, taught us various development techniques utilizing multiple branches, and multiple lines of development in these repositories. Up until now, these multiple repositories were all being developed independently of each other. Repositories of the different projects were autonomous.
This chapter will explain and show different ways to connect different subprojects in one single repository of the framework project, from the strong inclusion by embedding the code of one project in the other (subtrees) to the light connection between projects by nesting repositories (submodules). You will learn how to add a subproject to a master project, how to update the superproject state, and how to update a subproject. We will find out how to send our changes upstream, backport them to the appropriate project, and push them to the appropriate...