Я ищу команду 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
.