$ git push -u origin master
fatal: bad config value for 'receive.denycurrentbranch' in ./config
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
我猜测这个错误可能是由于SSH连接失败导致的。我使用PuTTY通过SSH连接我的Web服务器。然而,我还是一个新手,不太清楚它是如何工作的。
所以我尝试了在线生成私钥,下载并将其转换为PPK格式,并将其放入PuTTY的认证选项卡中。当我通过PuTTY登录时,我必须输入密钥密码,然后它就可以无错误地连接。
错误只出现在Git Bash中。那么我该如何修复它呢?我是否需要告诉Git使用PuTTY作为我的SSH代理(SSH代理到底是什么?)?或者Git默认使用Windows 10的OpenSSH?
我也尝试过使用
$ eval $(ssh-agent -s)
$ ssh-add ~/.ssh/id_rsa
但我不确切知道它是做什么的。它只是启动了OpenSSH-Agent吗?
如果有人能帮我澄清一下,我会非常高兴的。我已经用谷歌搜索了一天,虽然一点点拼凑起来了,但我还没有解决那个特别的问题。谢谢!:)
更新19.7.19
问题还没有完全解决。是的,将服务器端的receive.denycurrentbranch
设置为ignore
或refuse
可以使错误消失。我可以推送,然而没有文件显示。显然,仓库中只保存提交,而不是文件本身。正如我所想的,我需要updateInstead
选项,它允许存在非裸仓库(具有实际文件而不仅仅是提交的仓库),以便服务器可以从仓库中获取这些文件并将它们部署在我的public_html文件夹中。
我的服务器git版本是2.19.1,似乎比需要解释updateInstead
-参数的2.4.0版本更高。所以这仍然是一个谜团。
我现在正在尝试在我的服务器上安装一个新的git版本,只是为了看看那是否改变了什么。然而,我在那里遇到了一个不同的问题。请访问这个线程。
receive.denycurrentbranch
是服务器端的一个设置。在你的个人电脑上没有任何作用。 - VonC