0

i'm new to git and i'm having a problem i have a problem at pushing data at my git system. i installed git and gitolite but when i call: "git push origin master" it gives me this error:

Counting objects: 12, done.
Compressing objects: 100% (9/9), done.
Writing objects: 100% (12/12), 1.47 KiB, done.
Total 12 (delta 1), reused 5 (delta 0)
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'.
To gitolite@server.nl:gitolite-admin
 ! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'gitolite@server.nl:gitolite-admin'

i followed this tutorial installing gitolite: gitolink everything worked as i should be but at the very last step. When i execute the command i sadly got this error

can anyone tell me what to do or how to fix this? already thried : git config --bool core.bare true changing the branch (so that it(master) isn't in use)

thanksalot
  • 115
  • 2
  • 16
  • possible duplicate of [cannot push into git repository](http://stackoverflow.com/questions/3221859/cannot-push-into-git-repository) – Karl Bielefeldt Aug 05 '11 at 15:59

1 Answers1

0

The basic problem is that you're trying to push to a "none-bare" git repository. Whilst this is possible, a lot of the documentation and books don't make it clear that this isn't recommended.

So while git is a decentralised/many-master scm, in practice what you tend to have is "master" or "central" repositories that you clone from and push to and serve as the "canonical" repo, and work repos (eg on your laptop) that you cloned from a "master" that you pull to and push from. These "master" repositories should be created with --bare:

server$ cd ; mkdir git
server$ git clone --bare /home/user/foo /home/user/git/foo.git

Once you've done this, you'll be able to push from your laptop:

laptop$ cd foo
laptop$ git remote -v
laptop$ origin user@server:/home/user/git/foo.git (fetch)
laptop$ origin user@server:/home/user/git/foo.git (push)
laptop$ git push origin master

You could also do on the server:

git config --global receive.denyCurrentBranch "ignore"

But I wouldn't do this until you understand better how git works.

Sonia Hamilton
  • 4,229
  • 5
  • 35
  • 50
  • i got the error origin isn't a command when i skip the lines that starts with origin (go to git push ) i retrieve the error: origin does not appear to be a git repository – thanksalot Aug 12 '11 at 07:29