我们使用嵌入式 ARM Linux 系统,并拥有一些基于 SBC 的产品,并由它们控制自定义硬件。因此,我们需要开发自定义内核驱动程序,有时还需要调整现有的驱动程序。自从我们开始使用 Subversion 以来,我们选择的策略是使用“供应商分支”来保留要使用的 vanilla 内核,然后为每个产品创建一个分支,在那里我们将为 SBC 应用所需的补丁并进行我们自己的修改,非常类似于https://stackoverflow.com/q/2312984/1007502中的建议
值得庆幸的是,几个月前我们决定将我们的项目迁移到 git,因此我们设置了一个 gitolite 服务器,用于在开发团队之间共享项目,根据需要从 SVN 迁移项目,并且使用 git 变得更加舒适。在 Linux 内核的特殊情况下,我们认为可以选择使用我们的 gitolite 服务器作为远程来开发我们的项目很有趣,但我们希望能够从官方树中获取更新的内核并最终贡献一些东西当它达到允许的状态时返回。
在我自己的机器上,我可以看到如何 git clone 官方内核树并为我们的产品创建私有分支,根据需要将它们重新定位在较新的内核上(如这里);但我有点迷茫,我应该如何将官方内核树导入 gitolite,开发人员可以从它而不是官方内核存储库中推/拉,同时还能够使其与后者保持同步。
这是从我们机器上的官方树中获取更新并将它们推送回我们的私有 gitolite 服务器的问题,还是有更直接的方法?
编辑:(澄清问题)
主要问题是:虽然我知道如何初始化一个空存储库以将未跟踪的代码推送到 gitolite,但我不确定如何为我从另一个 git 存储库克隆的东西执行此操作,例如官方内核树。
一旦我在我的机器上克隆了它,将它移动到私有 gitolite 服务器的过程是什么?
那么,如何才能让这个现在“私有”的内核树与官方内核树保持同步呢?
这个想法是开发人员应该只推送到私有树,最终只发送补丁到官方树,如果有的话。