【问题标题】:Git: How can I prevent a specific commit from being merged into another branch?Git:如何防止特定的提交被合并到另一个分支中?
【发布时间】:2016-07-26 00:32:34
【问题描述】:

我们公司的 Git 工作流程如下:我们有一个 master 分支,一些 feature/* 分支用于开发新功能,这些分支在工作完成后合并回 master,还有 release/* 分支。这些分支是在产品发布之前创建的,旨在修复错误,没有新功能,然后这些错误修复偶尔会合并回master 分支。

有时,release/* 分支中的特定提交是我们想要合并回master 的更改:例如,当发布号递增。由于分支中还有其他重要的修复,因此肯定有人迟早会将该本地提交合并到master中,从而破坏主分支中的某些内容。 p>

我所知道的当前“解决方案”是在本地提交完成后立即将release/* 分支合并到master还原本地提交然后推送。它有点工作,但历史并不干净。此外,这不会阻止本地提交合并到除master 之外的另一个分支。

在所描述的工作流程中是否有更好的方法来解决该问题?

【问题讨论】:

    标签: git merge


    【解决方案1】:

    据我所知,如果不合并其所有父提交,就不可能在提交中合并,这听起来像是您正在尝试做的事情。

    不过,对您的工作流程稍作改动即可解决此问题。

    类似于Git Flow 模型,您可以创建hotfix/* 分支来修复错误,而不是直接提交到release 分支。这个分支可能应该基于master(在作为任何相关release 分支的父级的第一个提交),并且它应该合并到master 以及它影响的任何release 分支中。

    这样,release 分支永远不需要合并到 master,并且可以保留用于特定于版本的修复。

    【讨论】:

      【解决方案2】:

      为什么不将release/* 分支上的错误修复隔离为单独的提交(即没有发布版本更新),然后将这些提交挑选到master,正如here 所描述的那样?

      【讨论】:

        猜你喜欢
        • 2014-10-28
        • 2019-03-28
        • 2011-09-16
        • 1970-01-01
        • 2016-03-23
        • 2011-11-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多