The manual bare repo setup obviously offers no user access management beyond what the system's SSH configuration provides. Beyond that, a bare repository is actually an essential Git feature and what software like Gitea and even GitHub uses behind the scenes.
Given all users can share a user account on a server, it will behave exactly like you expect it to. Again, that's a core Git feature. Additionally, AFAIK Git has its own locking management. Also look up the `--shared` flag. `man git-init` is very helpful.
https://herrbischoff.com/2021/10/how-to-install-cgit-with-gi...
I’ve also tripped over something regarding “master” and “main” branches that’s easily fixed:
https://herrbischoff.com/2022/05/cgit-missing-idle-column-on...
If you want it even simpler, just run
in a folder on a server you have SSH access to and clone it on your local machine like