I would like to create the following setup for my git repos:
I currently have a local git repo with all my working files. I would like to be able to setup a central bar
git checkout
checks out a branch into the working tree – how do you think this should have worked without a working tree? And git merge
and most other commands don’t work, because there is no HEAD inside of a bare repository.
To answer your question: You don’t work within the bare repository. A bare repository is only there to keep the data; if you want to work with it, use a clone which is not bare.
So from any other repository, you pull from the bare repository, merge locally and push your changes back to it. You should do this from your development repository btw. so that the live and test repositories only pull from their branch.