【发布时间】:2011-09-29 12:11:41
【问题描述】:
G---H // Release Branch
/
/
A---B---E---F--- // master
\
\
C---D--- // bug fix branch
根据我们对项目的特殊需求,上述情况很常见。我们的 master/dev 分支有一些提交。然后我们得到一个错误报告并开始在错误分支上修复它(提交上面的 C 和 D)。与此同时,更多的提交发生在 dev 分支中。接下来我们被告知我们需要为客户创建一个版本,该版本不能包含上述提交 B、E 和 F 引入的更改,但它应该包含错误修复。
所以我们在更改 B 被应用之前就从 dev 分支出来了,但是将 bug 修复也纳入这个发布分支的最佳方法是什么?如果我执行分支的合并,它将包括在 B 中所做的我不想要的更改。我可以对提交 C 和 D 进行挑选,但我读到挑选樱桃并不总是一个好主意based on this answer 基本上是因为我的回购看起来像:
G---H---C'---D'--- // Release Branch
/
/
A---B---E---F--- // master
\
\
C---D--- // bug fix branch
所以 C' 和 D' 显示为具有不同 sha-1 ID 的全新提交,如 C 和 D。这真的是一件坏事吗?这会导致什么问题?有没有更好的方法将 bug fix 分支的更改导入到 release 分支?
【问题讨论】:
标签: git version-control merge branch git-branch