git problem

if you get this:

remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.

well , if found the problem, suppose you have make a project in your server:

$ cd /opt/git $ mkdir project.git $ cd project.git $ git --bare init

and then you do something like this:
$ git add *.c $ git add README $ git commit -m 'initial project version'

then you create another folder :
$ cd /opt/git
$ mkdir gitproj
$ cd gitproj
$ git clone /opt/git/project.git
$ git --bare init

after this, you wanna to use this gitproj as your server folder ,and you know what, your master is already checkout, and so you will get the error. To avoid this, just do not check out the original one.