2.How do I make existing non-bare repository bare?
After making sure that there are no uncommitted changes, etc.:
$ mv repo/.git repo.git $ git --git-dir=repo.git config core.bare true $ rm -rf repo
The problem with the above process is that it doesn't take into account future internal changes of Git. A safer method is to let Git handle all the internal settings for you by doing something like this.
* ssh to remote server * git clone --bare -l <path_to_repos> <new_dir> * renamed old repository directory * renamed new repository dir to what old repository used to be.
git config --bool core.bare false
git config --bool core.bare true