我目前正在尝试使用 git 修订系统构建一个包管理系统(类似于 apt / yum / zypper 等),并且我正在寻找一种方法来了解最新的稳定版本当前分支的。
示例:Linux 内核
我想知道,从 3.18 分支来看,最新的标签(当前为“3.18.9”)是什么,如果可能的话,提交识别码(当前为“d1034e83796a0433194f67c2a8c4abf0f6138b01”)。
我怎样才能做到这一点而不必下载所有存储库?
答案1
可能有一个更简单的变体,但以下内容将为您提供最后一次提交到分支的提交 SHA-1 master
:
git show -s origin/master
origin
(假设您的远程在本地存储库中被调用)。
如果你只想提交,
git show -s origin/master | awk 'NR == 1 { print $2 }'
为了确保您获得最新信息,您应该git fetch
提前。引用意味着origin/master
无论您本地的状态如何master
,这都有效,因此您不需要这样做git pull
。
如果不克隆您感兴趣的存储库,您就无法在本地使用,但您可以通过使用和选项来git
限制复制的数据量;例如--depth
--branch
git clone
git clone --branch linux-3.18.y --depth 5 https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
克隆linux-3.18.y
稳定内核树分支中的最后五个历史条目。这称为浅克隆,有许多限制;看git 克隆文档了解详情。