Вывод версии git на удаленном сервере

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

Ответ 1

Современные серверы 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.

Ответ 2

Аналогично тому, что было предложено Эдвардом Томсоном, вы также можете использовать переменные отладки среды:

GIT_TRACE_PACKET=true git ls-remote --heads https://github.com/libgit2/libgit2.git |& grep agent
12:31:40.317199 pkt-line.c:80           packet:          git< f92d495d44bff2bdb6fd99524a93986ea268c9e8 HEAD\0multi_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed no-done symref=HEAD:refs/heads/master agent=git/github-g956b612bf136

И снова, похоже, что GitHub использует пользовательскую сборку Git: agent=git/github-g956b612bf136.