I am old school, but all my coding stuff is under a single parent folder with the occasional smoke and mirrors with a mapped drive or mapped folder, which backup software can be told how to handle. That can be backed up easily. Git is version control, and while it does keep you safe from loss, it usually is missing your libraries, externals, and so much more. |
If your project depends on any "third-party" libraries, then these should probably be managed by NuGet, vcpkg, Ivy or a similar package/dependency manager. In this case, simply add your
packages.config
to the Git repo, and add the "packages" (or whatever it is called) directory to the
.gitignore
file, so that the packages themselves will
not be managed/stored in your Git repo. Once you check out the Git repo on a "fresh" system, the package manager will read the
packages.config
and re-download all required packages/libraries.
If your project includes any libraries as
source code (e.g. from another repo/project), Git has a nice feature called
submodules:
https://git-scm.com/docs/git-submodule
Simply put, a submodule
links another Git repo into your "main" Git repo. The submodule will then appear as sub-directory in the "main" Git repo. Just be sure to use
git clone --recursive
when checking out the "main" repo, so its submodules will be initialized too.
Not sure what else you might be missing. But I think a project should be organized (preferably in Git) in such a way, that anybody can check out your repo on a fresh system, run
MSBuild
(or
make
) from the "untouched" project directory, and get a working binary.