One may find themself in a situation, when a big project, with multiple modules, is all managed in a same Git repository. This can be, for example, with a project which outgrew itself, or an old legacy source code base. This isn't always very usable, if those modules are in fact updated independently, or worse, might be even delivered independently from each other. In the ideal world, these modules would probably be managed in separate repositories, so that they can actually be independent. This is not always possible however, and for whatever reason this is, there is a solution with Git for that - one can manage every module in its own git branch.