我有一个系统的5个分支-称它们为Master,London,Birmingham,Manchester和demo。这些仅在配置文件中有所不同,并且每个都有自己的图形文件集。

当我进行一些开发时,我会从master创建一个临时分支,在该功能之后调用该分支,然后进行工作。准备 merge 时,我会 checkout master和git merge功能来导入我的工作。看来工作正常。

现在,我需要将更改放入其他分支,而又不丢失它们之间已经存在的差异。我怎样才能做到这一点?对于伯明翰获得伦敦的图形,以及配置文件中的冲突,我一直没有遇到任何问题。

当分支最终正确时,我将其上推到一个软件仓库,然后将每个分支下 pull 到Linux盒中进行最终测试。从那里开始,正式版使用rsync(设置为忽略.git存储库本身)进入生产。这个阶段也很好。

我是目前唯一的开发人员,但是在寻求帮助之前,我需要确保流程牢固:)

最佳答案

两种技术可以帮助您:

  • submodules:如果您有5个“mains项目”,则每个项目都由以下组成:
  • 通用代码(在功能之后得到增强的功能)
  • 特殊代码(特定的图形文件或配置值,每个站点一组)
  • template config files

  • 因此,当您开发新功能时,要使其他站点受益,您需要做的就是确保它们各自的存储库引用最新的公共(public)代码存储库作为子模块。只需一个git submodule update即可完成。

    另外,使用模板配置文件,您存储的只是配置值,而不是实际的配置文件本身(它们会生成)。
    这样,您就可以在每个站点上进行一些微调,而不必“忽略”本地修改。

    总结:不要试图在一个仓库中管理所有方面(通用代码,配置文件,特殊文件等)(包括所有 merge 和 rebase ),而是要对应用程序进行模块化。

    关于git - 如何在Git中管理多个开发分支?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2896707/

    10-13 07:32
    查看更多