Git pull and push don't work

I cloned an empty repository from a personal git server. After initial push (push -u origin master) I got some error but I pushed inside.

Trying to use git push displays the following:

  • How to find SVN revision in subgit repo?
  • Replicating "git checkout <commit> with PyGit2
  • Adding a git commit message using vi on OS X
  • All the commits done by me in all the branches
  • git pre-push hook, don't run if is --tags
  • Git checkout without committing
  • 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 error: failed to push some refs to

    Then I tried git push origin master:

    Counting objects: 3, done.
    Writing objects: 100% (3/3), 218 bytes, done.
    Total 3 (delta 0), reused 0 (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'.

    Problem starts when using git pull:

    Your configuration specifies to merge with the ref ‘master’ from the
    remote, but no such ref was fetched.

    I tried to check .git/config but it seems correct.

            repositoryformatversion = 0
            filemode = true
            bare = false
            logallrefupdates = true
            ignorecase = true
    [remote "origin"]
            fetch = +refs/heads/*:refs/remotes/origin/*
            url =
    [branch "master"]
            remote = origin
            merge = refs/heads/master
    [branc "master"]
            remote = origin

    Any suggestions?

  • Is there a way in git to checkout all files except 1 or 2?
  • How do I Add a A Package To Buildroot Which Is Available In A Git Repository?
  • Update the fork Github
  • Run script before commit and include the update in this commit?
  • Trying to push to BitBucket but I get “master conq: repository access denied.” “fatal: The remote end hung up unexpectedly”
  • How to customize diff git to ignore yard date generation
  • 3 Solutions collect form web for “Git pull and push don't work”

    assuming that you have write access to your personal git server, what you are doing is pushing changes to a non-bare repository, and to a branch that are currently checked out as working directory.

    The current common good practices is always push to a bare repository. To create it, you could do something like this:

    git init --bare SomeRepo.git

    if you insist on pushing to a non-bare repository, which is not recommended, make sure that the branch that you are going to push to is not the current checked out branch or the current working directory. just open a command line tools, such as terminal in Linux or git bash in windows, move to your repository directory (the one that has a folder .git in it), execute this command:

    git branch -v

    it will show all the available branches of that repository, and the branch that currently checked out is marked with ‘*’, for example:

    * master        b0bb0b1 some commit message
      development   babbab2 some other commit message
      experimental  bebbeb3 some commit message in experiment

    the example above shows that master is the currently checked out branch, thus you couldn’t push to it. But you could push to other branches, such as development or experimental. If you must push to master, you could do it by changing the current directory to other branches, using this command:

    git checkout the_branch_name

    after this, the currently checked out is the branch that specified in above command, pushing to master is now possible.

    Remove this from the end of your file.

    [branc "master"]
            remote = origin

    Also – your central Git repository where your developers push to, should be a bare repository. Your error logs show that yours isn’t.

    I had a similar problem and found the answer in the Unix stack-exchange:

    In my case, my local branch and remote branch had different

    To resolve this I deleted my local branch $ git branch -d branch-name,
    then checked out the remote branch again using $ git fetch and $ git checkout Branch-name.

    So deleting the local branch and checking out the remote branch again fixed it.

    Git Baby is a git and github fan, let's start git clone.