git-flow:如何防止在发布分支上进行的某些更改合并回到开发

Ole*_*gas 7 git git-merge git-flow

问题是关于git-flow方法的一些边缘情况

我有一些典型的git-flow历史,如下所示:

      o---o---o---o [release-3.5.0]
     /
----o---o---o---o---o [development]
Run Code Online (Sandbox Code Playgroud)

Git-flow告诉我们将release-3.5.0分支合并到开发中然后发布就绪了.因此,最终我们将获得所有更改,在发布分支进入开发分支.

      o---o---o---o 
     /             \
----o---o---o---o---o [development]
Run Code Online (Sandbox Code Playgroud)

现在想象一下,我们有一个承诺上发布分支"X"我们不要想在开发分支,例如它是某种这已经是更理智的方式固定在发展黑客/修补程序或其他的(按提交ÿIE)

      o---X---o---o [release-3.5.0]
     /
----o---o---o---Y---o [development]
Run Code Online (Sandbox Code Playgroud)

那么,主要问题是如何处理这种情况呢?如何防止此提交(或提交)重新进入开发?

twa*_*erg 7

虽然推荐rebase和/或合并/恢复/壁球的答案将起作用,但我个人认为更好的答案是:

git checkout development
git merge --no-commit release-3.5.0
# make whatever changes you need to fixup the "hack" and/or clean up any conflicts
git commit
Run Code Online (Sandbox Code Playgroud)

  • @Olegas虽然您的评论在技术上是正确的,但遵循上述完整的工作流*将*创建"合并信息"(假设您的意思是合并格式的提交消息和/或在历史记录中创建合并的父指针的某种组合DAG),但它是创建这些的最终`git commit`.`git merge --no-commit`只是设置了一些内容,以便创建适当的元数据.如果你在最后的`git commit`之前尝试`git branch --merged`,它会正确显示该分支尚未合并,因为合并尚未提交... (2认同)