【问题标题】:Why "git pull" command over https from github repository need "sudo" as prefix?为什么来自github存储库的“git pull”命令需要“sudo”作为前缀?
【发布时间】:2011-03-04 01:10:36
【问题描述】:

我的操作系统是 ubuntu,我在 github.com 上有一些代码,以前一切正常,但有一天,当我打字时:

git pull

我被要求像往常一样输入密码,然后我得到这个错误。

错误:访问https://ghosert@github.com/ghosert/VimProject.git/info/refs时无法连接到主机 致命:HTTP 请求失败

直到我尝试使用 sudo 前缀,例如:

sudo git pull

它再次像以前一样工作。当 git 需要它时,我似乎失去了访问 https 的权限。有人对此有想法吗?

【问题讨论】:

  • sudo 不应该是必需的;现在你已经使用了它,恐怕你还有更严重的问题需要解决。 :) 我建议在您的本地目录中运行类似:sudo chown -R username:groupname . 以将文件所有权更改回您。 (将username 替换为您的用户名,将groupname 替换为/etc/passwd 中列出的主要组名。)

标签: linux git ubuntu github


【解决方案1】:

您发布的错误并不表明问题出在权限上。

error: couldn't connect to host while accessing
https://ghosert@github.com/ghosert/VimProject.git/info/refs fatal: HTTP request failed  

“HTTP 请求失败”听起来像是连接问题。

我敢打赌,您第一次输入时您的互联网连接失败了,当您再次输入时又恢复了,sudo,我怀疑这对解决问题有任何影响。

更糟糕的是,它现在可能搞砸了您的权限,请参阅 sarnold 的回答。

【讨论】:

  • 我保证互联网连接没有中断。没有 sudo 时它总是失败,但总是与 sudo 一起工作。另一个线索是,当我从另一台具有相同用户名的机器 ssh 到这台机器时,它仍然可以在没有 sudo 的情况下工作。
  • 可能是您的环境中的某些东西。试试“su - [你的用户名]”这样行吗?
【解决方案2】:

我今天遇到了同样的问题,这是我的分析和解决方案。

出于某种目的,我在我的 chrome 浏览器中设置了系统范围的代理设置,它似乎创建了一些环境变量,导致我的工作 shell 认为它们没有连接,因为我在工作完成后杀死了代理服务器.未删除 env 变量。

检查您的环境是否设置了一些不必要的变量。 env -- 这个命令将显示你 shell 中设置的所有 env 变量。

变量:

http_proxy, https_proxy

删除它们,一切都会正常。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 2022-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多