Couldn't set refs/heads/master when commit

I was able to commit fine yesterday. But today (I didn’t change anything), when I commit:

$ git add config.h
$ git commit -m "Update config.h to reset the values"
error: Couldn't set refs/heads/master
fatal: cannot update HEAD ref

I know that this error may happen also during pull or push. But I haven’t found a solution to fix it when committing.

  • when using git for windows, git bash could not work?
  • JGIT Pull NoHeadException
  • git: how can i list new files to add them after?
  • Why does git break if '/' is the root of the repository?
  • Any gui for git merge (w squash)?
  • Easiest way to rename git project configured on BitBucket
  • My .git/config file looks like this:

    [core]
        repositoryformatversion = 0
        filemode = false
        bare = false
        logallrefupdates = true
        symlinks = false
        ignorecase = true
        hideDotFiles = dotGitOnly
    [remote "origin"]
        url = git@SOME_URL
        fetch = +refs/heads/*:refs/remotes/origin/*
    [branch "master"]
        remote = origin
        merge = refs/heads/master
    

  • Can SonarQube fetch Data from a Git Repository?
  • how to resolve this ERROR running one or more of the platform when i am runnning “ionic run android --device”
  • Git - Cherry pick a single commit for pull request
  • msysgit: Unicode font warning
  • Git submodule update: reference is not a tree… but commit IS there
  • Commit history on remote repository
  • 3 Solutions collect form web for “Couldn't set refs/heads/master when commit”

    It seems you have lost your HEAD, so you will have to recreate it. You can do that using this.

    echo ref: refs/heads/master >.git/HEAD
    

    This will create a HEAD file in your .git folder. That should solve your problem.

    Also, try the git fsck command. It verifies the connectivity and validity of the objects in the database.

    git fsck --lost-found
    

    Use this to scan for unreachable objects. It will write dangling objects into .git/lost-found/commit/ or .git/lost-found/other/, depending on type. If the object is a blob, the contents are written into the file, rather than its object name.

    This may help others; I waited about a minute and simply retried the commit and … it worked.

    Check your .git folder for file HEAD.

    $ cat .git/HEAD
    ref: refs/heads/master
    

    If this does not exist, create it.

    $ echo "ref: refs/Heads/master" > .git/HEAD
    
    Git Baby is a git and github fan, let's start git clone.