从图中可以看出,在完成它之前将发布分支中的错误修改更改合并到开发分支中是完全可以的。
我的问题是,将开发中的更改合并到未完成的功能中是否可以? (红色箭头,由我添加)如果是这样,你会推荐哪个命令/选项?
编辑:这个想法不一定是挑选提交。 由于功能分支可以跨越主要版本版本(如图中的左侧版本),因此合并背后的想法是在功能分支中考虑开发更改(如服务或类重命名)以防止(或启动)解决)在发布完成后将会出现的未来合并冲突,这可能会使开发变得非常不稳定直到解决。答案 0 :(得分:2)
关于你的问题"它会没关系",我认为这取决于。 A是稳定的而D是未知的可能。将D合并到功能中可能会引入一些副作用或bug。如果错误会降低您对功能的影响,您可能不希望合并。如果您认为尽快发现潜在的错误很重要,那么合并是可以的。
A--B--C-D-E-F->dev
\
M-N-O--P->feature
假设您要将D合并到要素中。如果您只想要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来回可能最终会创建一个复杂的提交图。