获取给定Git存储库URL的最新修订版ID?

时间:2019-02-25 16:51:59

标签: git

所以我知道可以在Git存储库中从命令行检索修订ID:

git rev-list HEAD | head -n1

有什么可以让您执行以下操作:

git rev-list HEAD git@some.path.to.your.repo:user/repo.git | head -n1

或者您是否必须专门克隆存储库并位于终端的该目录中才能检索此信息?

谢谢。

1 个答案:

答案 0 :(得分:0)

git rev-parse HEAD更简单,并且产生相同的答案,但是它给您的是 current 版本的哈希ID,而不一定是 latest 版本。特别是,一旦签出某个分支,HEAD便会命名该分支的尖端(根据定义,这是该分支上的最后一次提交),但如果签出历史提交,则最终会导致“分离的HEAD”模式,并且HEAD现在命名该历史提交。因此,如果您在某个分支上,则只会获得 a (不一定是 the )最新修订:您会获得该分支的最新修订哈希ID。

也就是说,您可以使用git ls-remote来询问任何Git服务器,以告诉您如果您将Git连接到它,它将首先告诉您的Git存储库(出于git fetch的目的)。

git ls-remote ssh://git@github.com/path/to/repo.git

请注意,git clone包括创建一个新的存储库,添加一个远程名称/ URL对,获取分支和标记,然后签出一些分支。因此,如果您直接跳到“提取”步骤,然后在告诉您它们拥有哪些分支和标签名称以及这些分支和标签的哈希ID之后将其切断,那么您会您想要的答案。因此git ls-remote是您想要的命令。