github的开源项目,如何确定某版本是否包含某功能
背景
在网上搜资料的时候,经常看到大神给出一个GitHub的commit链接,说此项目已经加上了此功能,但是我不确定是从哪个版本开始的,研究了一下,得到如下方法。
通过commit链接找版本
例如这个commit,可以本地clone代码后,使用如下命令找到:
// 查看哪个分支包含这个commit
$ git branch --contains 1123def4dd649f35c4796f635e0222d7361fe738
contains
* main
// 查看哪个tag包含这个commit
$ git tag --contains 1123def4dd649f35c4796f635e0222d7361fe738
v0.1.6
v0.1.7
v0.1.8
当然,直接打开链接在GitHub也是可以看到的,如图所示:
通过GitHub PR找到版本
有的时候需要看PR,然后以确定哪些版本已经有这个PR了,先查看PR,比如如下两个
https://github.com/cilium/ebpf/pull/947
https://github.com/cilium/ebpf/pull/951
通过查看页面,可以看到一个状态是closed的,一个merged,所以只有后者被merged到了主版本,在页面进一步查看merge的commit id如下(不太好找,需要仔细看):
ti-mo merged commit b673899 into cilium:master on Mar 3, 2023
这样就可以得到commit id,随后就可以知道影响的版本号了。
本作品采用《CC 协议》,转载必须注明作者和本文链接
我是用 github blame 结合 compare branches 来判断的