tags:

views:

63

answers:

1

I bought a personal dev box which I will use for deploying stuff I create on my laptop. I thought it would be a good idea to use Git for code management. The idea was that I will keep committing on my laptop and when needed, will push the changes to the remote dev box.

  1. I initialized a Git repo on the box and
  2. cloned it on my laptop.
  3. But After doing git push I get this error:

    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

I know that the remote repo was not bare.

I want to ask if the only way to go with my kind of setup is:

  1. Initialize a bare repo on Server
  2. Clone it on my laptop
  3. add new files to the local laptop repo and commit the files
  4. push to the remote dev box repo

Even this setup gives me errors:

No refs in common and none specified; doing nothing.
Perhaps you should specify a branch such as 'master'.
fatal: The remote end hung up unexpectedly

EDIT

I tried

git push origin master

Got this error:

error: unable to create directory for .git/refs/remotes/origin/master
error: Cannot lock the ref 'refs/remotes/origin/master'.

Oh dumb me... I think it is sudo as in

sudo make me intelligent

+1  A: 

The first message, as you said, was because the remote was not a bare repo.

The second message was because the bare repo you created had no branches to begin with. When you cloned the repo and checked out a working copy, it created the master branch for you. When you tried to push however, there was no master branch on the remote repo, so it complains.

Try using git push origin master (or whatever your remote is called) and it should create the branches on the remote for you.

sykora
Thanks for your reply. I did that and I am getting this error: `error: unable to create directory for .git/refs/remotes/origin/master error: Cannot lock the ref refs/remotes/origin/master.`
AJ
Nevermind. I forgot `sudo`. :)
AJ