git - 如何在 Git 中管理多个开发分支?

标签 git branch

我有一个系统的 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/

相关文章:

git - 如何让git更改以工作目录结尾的行?

eclipse - 是否需要同时通过 Eclipse GUI 和 Gradle 配置文件添加依赖项?

svn - 一次开发多个 future 版本时,什么是好的分支策略?

git - 撤消 Git 中的 merge ,以便不存在来自其他分支的提交

svn - 一个人如何追溯分支,或者如何记录一个合并补丁的还原

javascript - Angular:如何在运行 Git 推送时强制运行单元测试?

git - 如何在 Windows 上设置 git ssh 的多个身份?

linux - SCSS 。如何添加不是那些返回错误的所有文件?

git filter-branch 重复提交

TFS 分支图