If the individual modules are sufficiently independent, you can use the git submodule to combine the two approaches. You will have one folder / repo in which you have a folder for each subproject. Each subproject is a separate repository and can be used as such, but you will be able to track the version of each project from the root repository, as well as issue “cooperative” commands to submodules, as in
git submodule update
or "recursive" commands, as in
git submodule foreach make
You will find documentation and a kind of tutorial on the Internet.
Here is an example of setting up a repository containing several submodules (ncs, ..., test_network)
git init git submodule add ssh://.../ncs ... git submodule add ssh://.../test_network vim Makefile
source share