A bare git repository is a a repository without a working directory.
It is basically only the .git
folder of your regular git repository without the checked out files that you can edit.
It is useful for repositories on a server, where no work should be happening in that repository. That means a directory that is not used for editing files, building your project or running tests.
It reduces the amount of disc space needed and still permits cloning, pushing, pulling and fetching (probably more I forgot about). It does not work well for add and commit, because it has no working directory.