2014-11-04 2 views
15

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

+0

Интересный вопрос. почему ты хочешь сделать это? –

+0

Мне интересно, если мой поставщик поставляет то, что он мне обещал :-) – rudimenter

+0

Вы можете, если у вас есть учетная запись оболочки, ssh и проверить, что там работает. Это возможно? В противном случае, я могу подумать о установке heath robinson, где вы помещаете что-то в крючок, который печатает версию git. –

ответ

16

Современные серверы git (начиная с git 1.7.12.1) вернут информацию о своей версии в возможностях в протоколе. Хотя точно, что нет команды git, которую вы можете запускать локально, вы можете просто запросить сервер git для получения информации, а последняя версия предоставит номер версии.

Вы можете использовать веб-клиент для запроса:

<repository url>/info/refs?service=git-upload-pack 

И рассмотрим первую строку для отчета agent=.

Например, против CodePlex:

% curl https://git01.codeplex.com/gittf/info/refs\?service=git-upload-pack 
000000bd43569b9f6f29136b6544809eacd2417a308f9341 HEAD\0multi_ack thin-pack 
side-band side-band-64k ofs-delta shallow no-progress include-tag multi_ack_detailed 
no-done agent=git/1.8.4.msysgit.0 

Что указывает на то, что CodePlex использует Git для Windows, 1.8.4 (git/1.8.4.msysgit.0).

Или против GitHub:

% curl https://github.com/libgit2/libgit2.git/info/refs\?service=git-upload-pack 
000000f83f8d005a82b39c504220d65b6a6aa696c3b1a9c4 HEAD\0multi_ack 
thin-pack side-band side-band-64k ofs-delta shallow no-progress include-tag 
multi_ack_detailed no-done symref=HEAD:refs/heads/master 
agent=git/2:2.1.1~peff-bare-reflogs-fetch-616-gc016f98 
... ref information removed ... 

Указав, что GitHub использует версию пользовательского GIT: git/2:2.1.1~peff-bare-reflogs-fetch-616-gc016f98.

+0

Это очень интересно. +1. –

+0

Не так просто, как я думал, но все же действительное решение. Было бы неплохо, если бы была git-команда, чтобы получить информацию об удаленном бэкэнде. – rudimenter

Смежные вопросы