正如在这张图上看到的那样,在完成之前将发布分支中所做的错误修复更改 merge 到开发分支中是完全可以的。
我的问题是,将开发中所做的更改 merge 为未完成的功能是否可以? (红色箭头,由我添加)如果是这样,您会推荐哪些命令/选项?
编辑:这个想法不一定是挑选提交。
由于功能分支可以跨越主要版本发布(如图中左侧的),我在 merge 背后的想法是在功能分支中考虑开发更改(如服务或类重命名),以防止(或启动)解决)将来发布完成时会出现的 merge 冲突,这可能会使开发变得非常不稳定,直到解决为止。
最佳答案
至于你的问题“可以吗”,我认为这要看情况。有可能 A 是稳定的,而 D 是未知的。将 D merge 到功能中可能会引入一些副作用或错误。如果该错误减慢了您在功能上的工作速度,您可能不希望 merge 。如果您认为尽快找出潜在的错误很重要,那么 merge 是可以的。
A--B--C-D-E-F->dev
\
M-N-O--P->feature
假设您想将 D merge 到特征。如果你只想要 D,不包括 B 和 C,
git checkout feature;git cherry-pick D
。如果你想要 B C D, git checkout feature;git merge D
或 git rebase --onto D A feature
。 git-rebase 创建了一个更整洁的历史记录,而 git-merge 来回可能最终会创建一个复杂的提交图。关于git - 是否可以将更改集成到发布分支中?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37938404/