Developers can create two types of Git repositories with different permission levels.
Bare repositories
A bare repository contains only the index folder. Developers cannot modify files in a bare repository.
Non-bare repositories
A non-bare repository stores copies of source files that developers can work on and commit changes to.