github问题之“Empty Reply From Server”

image

这两个星期,每次提交sudo rake deploy,就会遇到下面的问题

fatal: unable to access ‘https://github.com/xxxxx’: Empty reply from server.

在网上找了好久,每个解决的办法都不一样,又说是git2.0的问题,需要执行这样的命令git config --global push.default matching,可是还是同样的问题。最后有网友说是git被墙了,需要用vpn提交,看到这样的答案真是无语了,难道就没有办法了吗。

终于功夫不负有心人,又有人提出采用ssh的方式取代https,那么怎么搬到呢,我们需要执行下面的命令,或者到.git/config中修改remote-url,

git remote set-url origin git@github.com:codefunny/codefunny.github.io.git

然后再提交sudo rake deploy,结果这次报下面的错误:

Permission denied (publickey).
fatal: Could not read from remote repository.

根据说法就是sshkey正确了,大家就去https://help.github.com/articles/generating-ssh-keys/#step-3-add-your-ssh-key-to-your-account进行设置,我之前设置过,但还是报错,于是使用ssh -vT git@github.com进行测试,结果我知道了,使用sudo和非sudo使用的sshkey是不一样的,一个在/var/root/目录里,一个是/Users/username/目录下,所以是我使用sudo的缘故,怎么解呢?

那就更改_deploy所属权,将其由root改为username,下面的命令可以帮助到你sudo chown -R username ./_deploy,这样就就可以使用下面的命令再来提交一次rake deploy,正常的情况下会提交成功,在非正常的情况,可能还会出现下面的问题,

error: src refspec master does not match any.

此时可以尝试做出点修改,再执行一遍下面的命令中的某个或某几个

rake generate
git add .
git commit -am 'modifiy'
rake deploy

通过上面的探索总算是解决了问题,现在发现在网上找到最正确地答案真是越来越难了,自己不得不一个一个的去校验答案的正确性。

作者: Peter
出处: http://codefunny.github.io/
本文基于
署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名 Peter(包含链接)。