我有一个系统的 5 个分支 - 我们称它们为 master、London、Birmingham、Manchester 和 demo。它们的区别仅在于一个配置文件,并且每个都有自己的一组图形文件。
当我进行一些开发时,我会从 master 创建一个临时分支,在功能之后调用,然后进行处理。当准备好 merge 时,我检查 master 和 git merge 功能来引入我的工作。这似乎工作得很好。
现在我需要将我的更改应用到其他分支,同时不丢失它们之间已经存在的差异。我怎样才能做到这一点?伯明翰获得伦敦的图形以及配置文件中的冲突一直困扰着我。
当分支最终正确时,我将它推到一个仓库,然后将每个分支 pull 到一个 Linux 机器上进行最终测试,从那里发布到生产环境是使用 rsync(设置为忽略 .git 存储库本身) .这个阶段也很好用。
目前我是唯一的开发人员,但我需要在寻求帮助之前确保流程稳固 :)
最佳答案
有两种方法可以提供帮助:
- submodules :如果您有 5 个“主要项目”,每个项目都包括:
- 通用代码(在特性之后得到增强的特性)
- 特殊代码(特定图形文件或配置值,每个站点一组)
- template config files
因此,当您开发一项新功能时,要让其他站点从中受益,您需要做的就是确保它们各自的 repo 将最新的公共(public)代码 repo 引用为子模块。只需执行 git submodule update
即可完成。
另外,对于模板配置文件,您存储的只是配置值,而不是实际的配置文件本身(它们是生成的)。
这使您可以在每个站点上进行一些微调,而不必“忽略”本地修改。
总而言之:与其尝试在一个 repo(包括将涉及的所有 merge 和 rebase )中管理所有方面(公共(public)代码、配置文件、特殊文件...),不如尝试模块化您的应用程序。
关于git - 如何在 Git 中管理多个开发分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2896707/