我已经阅读了各种git教程,但仍然有一些关于git存储库&应该使用分支。
以下是我的情况:
我有一个由外部合作伙伴维护的代码库“A”,我每隔几个月就会收到一次源代码更新。基于代码库“A”,我已经构建了另一个产品“B”,这是我的核心产品。然后,我使用产品B作为我的客户的基础。每个客户都有自己的小调整。因此,我也为每个客户维护单独的代码库。在视觉上它看起来像这样:
A
|
B
/ / \ \
C D F G
现在问题:)每次在代码库“A”或“B”上发生更改时,我都面临着将所有更改合并到其他代码库的艰巨任务。我正在寻找一种方法如何利用Git为我简化此代码合并任务。
通过阅读教程,我学到了很多东西。但是,我仍然有一个关于我的存储库/分支结构应该是什么样子的基本问题。以下是我的问题:
我是否应该为每个代码库创建一个包含多个分支的存储库?
还有另一种(更好的)解决问题的方法吗?
任何帮助都会很棒! 感谢
答案 0 :(得分:0)
不清楚A和B之间的切割是多么干净。您可以决定将所有内容放在一个存储库中并将目录分开,或者将它们放在单独的存储库中,并使A成为B的子模块。这取决于您如何接收这些更新。
至于分支机构;您可以为B的每个变体分配一个分支,然后每当您对其他代码库也应该具有B的更新时,您只需git merge B
进入其他分支。当你似乎为每个代码库修改B(而不是扩展它)时,将B作为子模块在这里不起作用。
关于分支的单独文件夹:不,不是直接。当您查看一个分支时,其他代码在您的工作目录中不可用。您必须检查另一个分支以切换到其他代码库,更改工作目录的内容。但是,如果您发现自己切换了很多,可以设置multiple working trees。这虽然是一个实验性的功能,当你还在使用子模块时会有一些错误。您还可以考虑简单地维护同一个存储库的多个实例,接受开销......或者只在需要时在分支之间切换。