gpt4 book ai didi

git - 查看远程服务器上的git版本

转载 作者:IT王子 更新时间:2023-10-29 01:25:43 27 4
gpt4 key购买 nike

我正在我的本地机器上寻找 git 命令,我可以运行它来找出远程服务器上运行的 git 版本?如果这甚至可能的话。

最佳答案

现代 git 服务器(从 git 1.7.12.1 开始)将在协议(protocol)的capabilities 协商中返回它们的版本信息。虽然没有可以在本地运行的 git 命令是准确的,但您可以简单地查询 git 服务器以获取信息,最新版本将提供版本号。

您可以使用 HTTPS 或 SSH 找到此信息。

HTTPS

您可以使用网络客户端请求:

<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 for 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

SSH

SSH 远程调用远程服务器上的 git-upload-pack 进程进行通信。您可以通过 ssh 进入远程并执行该过程。与 HTTPS 示例一样,第一行将包含功能。与 HTTPS 示例不同,您需要针对要获取的内容执行交互式协商,因此您需要指示您不想通信的远程。

作为 git 协议(protocol)的一部分,这意味着您需要写入命令的长度,然后是命令本身(在本例中为 done)和换行符。这是 9 个字节(四个字节用于长度,四个字节用于命令,一个字节用于换行)。因此,您将给 Remote 的指令是 0009done\n

echo '0009done' |  ssh <host> git-upload-pack <repository> | head -1

例如,要获取 ssh://git@github.com/libgit2/libgit2 又名 git@github.com:libgit2/libgit2 的信息:

echo '0009done' |  ssh git@github.com git-upload-pack /libgit2/libgit2 | head -1
014c13502d9e7f6c51a5f93ea39e14db707d382dc996 HEADmulti_ack thin-pack side-band side-band-64k ofs-delta shallow deepen-since deepen-not deepen-relative no-progress include-tag multi_ack_detailed allow-tip-sha1-in-want allow-reachable-sha1-in-want symref=HEAD:refs/heads/main filter object-format=sha1 agent=git/github-g54d96f1f66a0

表示为我的 github.com 请求提供服务的 git 的当前版本是 git/github-g54d96f1f66a0,表示这是一个开发版本来自提交 54d96f1f66a0,这表明他们正在测试生产中的更改。

关于git - 查看远程服务器上的git版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26738572/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com