我在推送提交时遇到以下错误
$ git push origin master
fatal: unable to create 'refs/heads/master.lock': File exists fatal:
The remote end hung up unexpectedly
我想过从本地计算机上删除锁定文件(refs/heads/master.lock
)。但是这个文件不可用。我认为这个文件在git服务器中。
这个问题的根源是什么?如果我从服务器中删除此文件,如果该文件存在,它是否会解决问题?
答案 0 :(得分:16)
您需要移除现有的 .lock
文件并尝试推送,
rm -f .git/refs/heads/master.lock
del .git\refs\heads\master.lock
答案 1 :(得分:7)
这是因为其他一些git操作可能已经在中间死亡(甚至仍然在罕见的情况下运行)并且留下了一个锁定文件。一旦您发现服务器上没有运行与git相关的进程,为了安全起见,您可以删除该文件并尝试再次推送。
答案 2 :(得分:1)
对于那些因此问题而来到此页面但无法使用已接受的解决方案的人,因为该文件不存在而无法删除,因此可能是权限问题。
This SO question应该会有所帮助。在我的情况下,我一直在不同终端上使用root和普通用户帐户,并且必须以root身份完成某些操作并导致链接答案中建议的问题。解决方法是将我的git目录中的权限修复回用户。
答案 3 :(得分:-3)
我在提交之前使用了'sudo'并且它有效。即“sudo git commit -am'commit message'”