为什么Linux内核存储库只有一个分支?

为什么Linux内核存储库只有一个分支?,linux,git,linux-kernel,workflow,Linux,Git,Linux Kernel,Workflow,我是Linux初学者,如果这是你听过的最明显的问题,请原谅我 此回购仅反映了Linus将数百家其他分支机构合并为一个主回购的结果 它没有保留这些分支机构,因为它们太多了:回购协议的作用是作为参考 主线内核 首先:不要使用github链接(它只是一个镜像)。实际存储库位于。你可能想用Linus Torvalds的树 它被称为mainlinekernel,这意味着这棵树是下一个内核版本实际开发的地方。尽管它只有master分支,但您可以使用标记签出到任何内核版本。此命令将显示所有版本标记: $ gi

我是Linux初学者,如果这是你听过的最明显的问题,请原谅我


此回购仅反映了Linus将数百家其他分支机构合并为一个主回购的结果

它没有保留这些分支机构,因为它们太多了:回购协议的作用是作为参考

主线内核 首先:不要使用github链接(它只是一个镜像)。实际存储库位于。你可能想用Linus Torvalds的树

它被称为mainlinekernel,这意味着这棵树是下一个内核版本实际开发的地方。尽管它只有master分支,但您可以使用标记签出到任何内核版本。此命令将显示所有版本标记:

$ git tag
您可以签出到所需的标记,如下所示:

$ git checkout v4.0
主线内核不需要一堆分支,因为这棵树中的开发过程永远不会停止,而且一旦发布了新版本,就不会有任何对该版本的后移植(在主线树中)。因此,在本例中,Linus坚持使用标记(而不是分支)

稳定核 还有一棵树。“稳定”意味着在发布后,一些bug修复将被重新移植到它。在此树中,您应该查找分支(而不是标记):

您可以看到如下分支:

linux-4.9.y
其中
y
后缀只是错误修复版本的占位符(因为命名方案是
linux-4.x.y
)。无论何时看到
y
后缀,它都是一个稳定的内核分支。其中一些分支是LTS内核(请阅读以了解详细信息)

在这种情况下,需要分支,因为开发人员必须将一些错误修复向后移植到已发布的版本中。因此,仅仅标签是不够的

下一个内核 还应该提到的是,有一棵树。以下是来自以下方面的描述:

在将子系统树的更新合并到主线4.x树之前,需要对它们进行集成测试。为此,存在一个特殊的测试存储库,几乎每天都会将所有子系统树拉入其中:

通过这种方式,
-next
内核提供了在下一个合并阶段预期进入主线内核的内容的概要展望。非常欢迎有冒险精神的测试人员在运行时测试
-next
内核

保持树 回到树上。实际上有很多,它们被称为维护者树。你可以看到所有这些

您需要了解合并策略:只有Linus才能真正将代码合并到主线树。您可以在git日志中看到他提交的许多合并。所以,如果您想将补丁应用于主线内核,您需要先将其发送给查看。看见一旦相应的子系统维护人员审查并确认了您的补丁,他将把它应用到自己的树上。从那里这个补丁将合并到主线内核在下一次。描述了Linux内核开发模型


如果您对升级补丁程序感兴趣,您可能还想浏览一些资料。

如果您想查看其他一些分支的外观,请查看位于的“内核”类别。当然,您可以从任何地方发送补丁(甚至不一定需要使用git)。主线存储库中的提交日志通常会显示事情的来源。@MattiVirkkunen-true:GitHub repo只是一个镜像。现在好像GitHub镜像不再同步了…@malat它现在同步了。
linux-4.9.y