2013-03-29 59 views
0

我一直在尝试了解更多关于git内部特定协议的信息。我知道如何使用git客户端,但我想尝试在没有它的情况下使用git协议来了解更多信息。当我尝试运行时通过http协议访问github,而不使用git客户端

wget https://github.com/git/git.git/info/refs 

或访问浏览器中的URL我得到403禁止。为什么当我只是想读取文件时需要进行身份验证?有没有解决的办法?

+2

看到您对以下答案的评论,我建议您查看“[Git - Transfer Protocols](http://git-scm.com/book/en/Git-Internals-Transfer-Protocols)”部分Git Pro书。 – eykanal

+0

是的,我已经看过那个页面 - 那么如何在不使用git客户端的情况下执行所有GET命令呢? – xuanji

+1

查看“[9用于值得了解的cURL](https://httpkit.com/resources/HTTP-from-the-Command-Line/)”,这可能是模仿来自命令行的HTTP请求的最简单方法,有足够的灵活性让你看到所有血淋淋的细节。 – eykanal

回答

3

该URL将与git的愚蠢HTTP方法github has disabled一起使用。您需要使用其他地方托管的存储库才能使用该存储库。使用github,你需要使用更新的智能HTTP传输。

+0

谢谢!你知道在哪里可以找到智能http协议的规范吗? – xuanji

+0

我认为最接近规范的是[git http-backend手册页] [https://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html]。这实际上只是用于ssh://和git://传输的相同协议的小包装。除了阅读源代码之外,最好的办法可能是使用wireshark来窥探通过http://而不是https://(除github之外的其他位置)服务的存储库的流量。 – qqx