【问题标题】:How to check to which branches of the linux kernel repo a specific commit is applied如何检查特定提交应用于 linux 内核 repo 的哪些分支
【发布时间】:2016-01-27 14:32:08
【问题描述】:

假设我在 linux git repo 中有一个 git commit,例如http://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=8c7188b23474cca017b3ef354c4a58456f68303a

从这个提交开始,我如何才能了解这个提交实际包含在 repo 的哪些分支中?安全提供者告诉我上述提交适用于 2.6.x、3.10.x、3.12.x、3.14.x 和 3.4.x 分支。

他们如何确定这一点?

【问题讨论】:

  • 我不相信它是重复的。这超出了 git 的简单用法,它部分是关于内核 repo 本身的结构。当您实际使用“重复”答案中解释的命令时,就会变得很清楚。上面的提交似乎只包含在 master 中,但是在浏览内核 4.3.3 的发行说明时,您会看到它也在其中

标签: git version-control linux-kernel git-commit


【解决方案1】:

首先,获取以确保您从远程获取最新信息:

git fetch

使用branch 命令的--contains 选项:

git branch --all --contains 8c7188b23474cca017b3ef354c4a58456f68303a

--contains [] 仅列出包含指定提交的分支(如果未指定,则为 HEAD)

【讨论】:

  • 这不起作用。您的命令仅返回该提交在 master 中。但是,查看内核 4.3.3 的发行说明,您可以看到上面的提交已包含在内。
  • @danielf。这可能是因为您没有这些其他分支的本地副本。传入--all 标志以查看所有分支(本地和远程)的结果
  • 我承认我不是 Git 专家。我在本地克隆了git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git repo。据我所知,它有很多头和很多标签。我错过了什么吗?
  • @danielf。在 Git 中,当你克隆一个 repo 时,你就是在克隆 一切。所以我希望你会看到很多分支和标签。可能令人困惑的是拥有所有这些分支的本地副本的概念。克隆后,您只有主分支的本地版本,但实际上您已经下载了每个分支(有边缘情况但与本讨论无关)。要查看差异,请运行命令 git branch --local 和 'git branch --remote`
  • @danielf。要获取您自己的其他分支副本,请使用“checkout”命令,例如:git checkout fooBranch
猜你喜欢
  • 2013-04-24
  • 2021-01-25
  • 1970-01-01
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 2013-07-14
  • 2014-01-04
  • 2011-11-25
相关资源
最近更新 更多