Git-创建类似子模块的东西,但是相反

问题描述 投票:0回答:1

我正在建立一个具有基础的系统(您可以称其为样板或框架),因为需要定制该系统,以便根据特定客户的特定要求(尤其是外观和用户体验)在众多客户之间交付。因此,我需要为我的项目创建两个存储库。第一个是基础存储库,其中包含基础的基础部分。第二个是项目特定的存储库,其中包含上层部分。

我正在寻找一种解决方案,使我仅需在一个工作场所中打开项目目录,即可单独编辑整个项目。但是在提交并推送它们之后,它们将转到不同的特定存储库。一次一个git命令是可以接受的。

[如果使用git submodule add,则可以从父存储库链接到子存储库,因此,两个项目存储库可以从其自己的子目录共享并维护相同的子存储库。但是我需要的是相反的。项目之间没有共享公共子存储库,而是共享父存储库。提供了Git的任何功能吗?还是任何与Git或客户端兼容的解决方案?还是我可以用submodule进行任何处理,但可能稍后在客户端进行重组?

我尝试了什么

我尚无法使用submodule找到任何解决方案。不直接,但我设法从多个遥控器中提取并合并它们,解决了一半的问题。但仍在寻找如何选择将哪些文件推送到哪个遥控器上。

git git-submodules
1个回答
1
投票
如果您的超级项目(具有适当git术语的根项目)从未更改,但是子模块有所更改,则应在两个环境中进行管理:开发和构建。

没有办法从git和版本的每个组合中完成所需的工作。通常,超级项目包括子模块,而不是相反。

[最好的替代方法(这里是推测)是在根中包括

all个子模块,并使用预处理程序指令来指示编译器每次将要编译哪些子模块。

如果这不是一个选择,那么您至少应该检查一下体系结构,或者继续使用其他技术。使用vanilla git,您可以尝试直接从开发计算机加载和卸载模块。

另一个选择是定义克隆宏以动态生成每个工作树(克隆超级项目,添加子模块X,部署在机器上进行开发,您可以通过任何bash / batch脚本来实现。)>

© www.soinside.com 2019 - 2024. All rights reserved.