首页 > 解决方案 > git 在多个修补程序和功能提交后同步分支

问题描述

嗨:我有 2 个分支 master 和 dev 大约 2 周前同步。现在需要一些关于如何将功能(提交 F)移动到主分支的帮助。已经阅读了许多 git 工作流模型,只需要确保我在提交和推送更改之前就已经理解了它。

2 周前 大师

...-C-D-E

acpt

...-C-D-E

我在两个不同的日期添加了两个修补程序(H1 和 H2),同时处理另一个功能(提交:F)。所以树枝看起来像这个主人

           H2
          /
         H1
        /
...-C-D-E

开发者

         H1 H2
        /  /
...-C-D-E-F

我的问题如下
1. 现在我想将 F 移到 master。我打算git merge dev在主分支中做。这
2 有什么问题吗?或者我应该git merge <commit-id for F>在 master 分支中做什么。
3. 或者我应该在一个新分支中开发 F 并将该分支合并到 master 和 dev

标签: gitmergecommit

解决方案


据我从您的开发工作流程中了解到,您正在使用 gitflow 工作流程。在此工作流程中,主要分支是:

  • master - 最稳定的主分支
  • development - 开发分支,用于开发和合并功能(最初从 master 创建)
  • 特性分支——每次你想开发一个新特性时,你必须从最新的开发中创建一个新的特性分支
  • hotfix - 用于 master 上的修补程序(如果版本已损坏)
  • 发布 - 从开发创建到推送(发布)更改到主

如果您正在开发而不是功能分支,那么您必须先合并开发以掌握,然后再遵循工作流程。要回答您的问题:最好使用第一个选项:

git checkout master
git merge dev //to merge dev into master

然后推送到远程主控。

为了让 github 开心(如果你使用 github),你必须将 master 合并回开发中(这样它就不会发散也不会抱怨)。


推荐阅读