我正在维护 Redis Sentinel library for Laravel在 git 中有两个活跃的开发分支:
1.x ... o ———— o —————— o — o — o — o — o ...
↘ ↑ ↑ ↖
2.x (breaking change) — o — o — o — o — o ...
如上所示,我 fork 了1.x来适应该库集成的新版本框架的重大更改,但我发现自己cherry-pick
ing 在分支之间提交或手动复制代码,以更新两个分支中的通用功能。
似乎我永远无法 merge 这些分支,因为它们各自包含彼此不兼容的代码。我可以遵循什么更好的工作流程来减少 merge 分支之间常见更改所需的工作?
最佳答案
这个古老的问题。分支或不分支。
这里确实没有 Elixir 。他们必须保持分歧的原因是什么?如果由于新架构实现之类的原因,它们永远不会重新组合在一起,那么是否存在无法将 1.x 迁移到 2.x 或在宣布的一段时间后完全弃用 1.x 的原因? ?
这些通常是必须做出的艰难选择 - 由于与不断 merge 相关的维护开销,弃用并停止支持旧的或不同的更改,或者只是接受它。只是要意识到,如果您忍受它,您将花费时间在本可以花在新功能上的开销上。
分支保持分歧且没有计划调和差异的时间越长,您可能承担的技术债务就越多,让您经常忙碌,并且可能会增加。
我意识到这不是一个解决方案,但我不知道有任何其他选择 - 如果您允许存在差异而不计划在将来重新 merge 它们,那么就会存在差异并且需要不断维护对于您想要保持不变的任何内容。如果不了解您特定项目的具体细节,我不知道任何其他答案。
关于git - 如何维护两个或多个永不 merge 的发散分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508918/