我有分支alpha
,beta
和master
。我还有分支feature_a
,feature_b
,feature_c
和feature_d
。
然后我:
feature_a
合并到alpha
feature_b
合并到alpha
feature_c
合并到alpha
feature_d
合并到alpha
feature_b
feature_d
存在问题(或者他们错过了截止日期并且仍处于测试阶段),但其他人已准备好前往{{} 1}}分支。
我怎么能只合并选择"分支"从beta
进入beta
分支,以便只合并alpha
和feature_a
?历史和祖先是否保持完整(假设特征分支被修剪或删除)?
我在feature_c
,git merge beta feature_c...alpha
的范围内猜测某些事情(这些命令不会起作用,但这是我所尝试的理论背后的理论到目前为止。)
答案 0 :(得分:1)
如果您只想合并某些分支,则只能合并那些分支:
git merge beta feature_a feature_a
现在,如果您只想在开始发布时的状态下合并那些分支(即:将它们合并到alpha
中),那么,您可以在此时标记它们合并,标签为feature_a_release-n
等......;这样就可以合并到beta
中:
git merge beta feature_a_release-n feature_b_release-n
我们还可以考虑一种替代方案,因为在继续测试之前,您可能理所当然地希望在它们之间实际合并这些功能以便一起测试它们。在这种情况下,您可能希望每个版本执行一个分支,而不是alpha
分支,例如:alpha-release-n
。如果您在创建此版本分支后发现功能分支出现问题,则可以创建一个新版本,例如alpha-release-n.2
,它不包含不需要的分支。
最终主观性:这个工作流程,每个团队都有一个功能分支,是我公司几年前使用的工作流程。从那以后,R& D增加了一倍以上,我们在这个工作流程中发现了一些缺陷。 (例如,因为后期整合可能会在几天后发现冲突,这是一个相当晚的反馈)。
在没有深入细节的情况下,在我们的代码库中投入大量精力建立可靠的非回归测试之后,我们现在只提交到master
,我们认为它应该可以投入生产在任何时候。