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
I experienced this problem (fatal: couldn't set 'refs/heads/my-branch'
) when I had 2 copies of VS Code, each with integrated terminals checked out to the same commit. Except one version of VS Code was in WSL (Windows subsystem for Linux) mode. I closed the WSL VS Code and immediately was able to commit in the vanilla non-WSL VS Code.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With