Couldn't set refs/heads/master when commit

╄→尐↘猪︶ㄣ 提交于 2019-11-29 20:02:18

问题


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

回答1:


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.




回答2:


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




回答3:


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



回答4:


In my case the issue was with permission on the GIT repository on server for the path refs/Heads/master.

After allowing my username for accessing the mentioned path, all worked well.



来源:https://stackoverflow.com/questions/30809205/couldnt-set-refs-heads-master-when-commit

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!