首页 > 解决方案 > 切换内核时的本地补丁存储库

问题描述

我是 git 新手,我的场景如下:我在一个私人项目上为 linux 内核制作了补丁。我希望我的本地存储库保存这些补丁。不是整个内核。我不是在谈论 .patch 文件,而是保存我实际更改的文件。

因此,当我想将它们应用于不同的内核时,我只需将它们拉入第二个内核文件夹即可。

现在解决问题:我需要能够偶尔切换基础树,或者,为了简化场景,我希望能够拉出不同的树并将我的补丁存储库拉入其中。

但实际的第二个内核是一个 repo,我的补丁也是一个 repo。所以我不能将它们组合在同一个文件夹中,同时仍然对两者进行源代码控制。

有没有办法粘贴 repos 或告诉 git 一个是父级,一个是子级,它会自动合并并自动提取所有内容?

问候大卫

标签: gitlinux-kernel

解决方案


有没有办法粘贴 repos 或告诉 git 一个是父级,一个是子级,它会自动合并并自动提取所有内容?

这基本上是目的,git submodule但它们不会自动合并。子模块必须至少位于主仓库的给定子目录中。

但是,如果您的 Linux hack 不是要修补现有的官方文件,而是编写一个可以使用insmodmodprobe加载的独特内核模块,那么您根本不需要在内核树中进行开发。只需在某个地方指定一个常规目录,您将在其中进行所有开发,然后让顶级 linux makefile 从这里为您编译它:

make -C /lib/modules/`uname -r`/build M=`pwd` modules

推荐阅读