为什么git clone git://不起作用

时间:2017-02-14 07:22:44

标签: git github ssh

// This works
git clone https://github.com/foreverjs/forever.git

// This one also works
git clone git@github.com:foreverjs/forever.git

// This one didn't work
git clone git://github.com/foreverjs/forever.git

第三个错误消息是:

Cloning into 'forever'...
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

据我所知,通过SSH或HTTPS的git clone比git://协议更受限制。我真的很困惑,为什么我收到此错误消息,因为git://协议甚至不需要身份验证。

github现在只允许通过SSH或HTTPS使用git clone,还是我错过了什么?

3 个答案:

答案 0 :(得分:1)

我本地计算机中的gitconfig文件导致了这个问题,我在〜/ .gitconfig文件中找到以下两行:

[url "ssh://"]
    insteadOf = git://

如果我删除了这两行,git://协议将不会通过SSH运行,因此不再有权限问题

答案 1 :(得分:0)

它对我很有用:

$ git clone git://github.com/foreverjs/forever.git
Cloning into 'forever'...
remote: Counting objects: 3258, done.
remote: Total 3258 (delta 0), reused 0 (delta 0), pack-reused 3258
Receiving objects: 100% (3258/3258), 782.12 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1341/1341), done.
Checking connectivity... done.

您是否正确设置了公钥?

git://是不同的协议,如手册页中所述:

  
      
  • git:通过直接TCP连接(或代理,如果已配置)的匿名git协议
  •   

它不安全(不加密)所以不建议使用。

  

github现在只允许通过SSH或HTTPS使用git clone,还是我错过了什么?

首选方法是使用SSH或HTTPS,因为您始终通过不安全的Internet连接(除非您位于GitHub的数据中心 - 不太可能)。 git协议可以在您信任的Intranet或本地网络中派上用场。另请注意

  

像" git://example.org/path/to/repo.git"将被重写为" ssh://example.org/path/to/repo.git"推送,但拉取仍将使用原始URL。

答案 2 :(得分:0)

我在使用 git bash 进行永无止境的控制台打印时遇到了同样的错误。

就我而言,我删除了 Windows 凭据管理器和我的 .gitconfig 中所有与 Git 相关的条目,然后我使用了 Github Desktop 的克隆功能。

在 Github Desktop 中,我不得不重置我的凭据(用户名和开发人员令牌),它再次对我有用。