git 在多个修补程序和功能提交后同步分支

Posted

技术标签:

【中文标题】git 在多个修补程序和功能提交后同步分支【英文标题】:git syncing up branches after a multiple of hotfixes and a feature commit 【发布时间】:2020-05-22 20:28:19 【问题描述】:

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

2 周前 大师

...-C-D-E

接受

...-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>。 3. 或者我应该在一个新分支中开发 F 并将该分支合并到 master 和 dev 中

【问题讨论】:

【参考方案1】:

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

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

如果您从事的是开发而不是功能分支,那么您必须先将开发合并到 master,然后再按照工作流程进行操作。 回答您的问题:最好使用第一个选项:

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

然后推送到远程master。

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

【讨论】:

以上是关于git 在多个修补程序和功能提交后同步分支的主要内容,如果未能解决你的问题,请参考以下文章

在git中列出所有下游本地分支

Git:将提交合并到不同的分支

在 GitHub 上维护线性历史记录,同时拥有 2 个永久分支

Git的branch操作详解

git标签合并了吗?

Git rebase使用