2013-03-29 8 views
0

Я пытался узнать больше о внутренних функциях git, в частности протокола. Я знаю, как использовать git-клиент, но я хочу попробовать играть с git-протоколом без него, чтобы узнать больше. Когда я попробовал работатьдоступ к github через протокол HTTP без использования git-клиента

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

или посетив адрес в браузере Я получаю запрещенный 403. Зачем мне проверять подлинность, когда я просто пытаюсь прочитать файл? Есть ли способ обойти это?

+2

Просматривая ваш комментарий к нижеследующему вопросу, я предлагаю вам ознакомиться с разделом «[Git - Transfer Protocols] (http://git-scm.com/book/en/Git-Internals-Transfer-Protocols)» раздела книга Git Pro. – eykanal

+0

да, я посмотрел на эту страницу - так как мне делать все команды GET, перечисленные на ней, без использования git-клиента? – xuanji

+1

Отметьте «[9 использует значение cURL, знающее] (https://httpkit.com/resources/HTTP-from-the-Command-Line/)», это, вероятно, самый простой способ имитировать HTTP-запросы из командной строки с помощью достаточно гибкости для вас, чтобы увидеть все детали gory. – eykanal

ответ

3

Этот URL-адрес будет использоваться с немым HTTP-методом git, который github has disabled. Вам нужно будет использовать репозиторий, размещенный в другом месте для работы с этим. С github вам нужно использовать новый интеллектуальный HTTP-транспорт.

+0

спасибо! знаете ли вы, где найти спецификацию смарт-протокола http? – xuanji

+0

Я думаю, что ближе всего к спецификации будет [git http-backend man page] [https://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html]. Это действительно просто небольшая обертка вокруг того же протокола, который используется для ssh: // и git: // transports. Помимо чтения источника, лучшим вариантом может быть использование wirehark для отслеживания трафика в репозитории, обслуживаемом через http: //, а не https: // (например, где-то, кроме github). – qqx