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.
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
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.