我们使用Git Flow并拥有一个发布分支,我们不断从分支提交中选择Cherry来修复我们在开发分支中需要的错误。有时我们在做樱桃时会遇到冲突。当发布时,我们显然会将发布分支合并到我们的开发中。我们会再次得到同样的冲突吗?我们曾经在樱桃皮中解决过这个冲突吗?
也许还有其他更好的方法可以将我们的开发与发布分支的错误修正同步?
donnib
答案 0 :(得分:3)
根据git flow model,您应该将发布分支中的错误修复应用于开发分支,而不是通过樱桃选择,而是通过合并。你提到你在“释放出来”时进行合并,但是没有理由等待它;只要您修复发布中的错误,就可以从发布版本合并到开发中。
(编辑:回复评论中的问题)
您提到在开发分支中有一些您不希望开发的更改(例如版本号和诸如此类)。如果您在第一次分支发布时知道所有这些更改是什么,请在分支开发后立即将这些更改发布,然后将发布版本合并到git merge release -s ours
进行开发。这将导致合并提交发生,但开发中的文件实际上不会发生变化。然后,未来合并到开发中不会带来那些不必要的变化,因为就git而言,它们已经被合并。现在发布之后,如果你做希望将这些变化合并到开发中,你确实必须亲自挑选一个单一的提交,但这可能比你现在做的多个樱桃选择更好。
答案 1 :(得分:1)
为什么功能分支中会出现错误提交?
错误修正应该在功能分支的单独分支上(或者直接推送到分支发布),每个错误修复和新功能都可以有一个单独的分支,这样你就不必挑选个别提交。
答案 2 :(得分:1)
我不太了解你的过程,但听起来并不合适。 Git Flow大约是一个3层流程。三层是您的发布分支(rel#。#),您的中间开发分支(dev)以及您的缺陷修复或功能增强分支(任务#)。
我的GitFlow开发周期:
git cherry-pick只能选择并合并提交,这些提交可能会对您不想要的文件进行更改。使用以文件为目标的git checkout来获取您想要的提交中的文件更改。
要从不同分支中的同一文件的单个文件中获得非常独立的更改,请使用旧的时尚剪切和粘贴。