好的,有 2 个项目,A 和 B。我正在处理的项目“B”在“A”的下游。也就是说,B 与 A 相比,添加了不同的功能,并朝着不同的方向成长。但它们有着共同的历史。
不久前,B 会随着 A 的每个主要版本定期更新而得到维护。但现在情况已不再如此。
在追踪 B 中的内存泄漏时,我发现它在一年前已在 A 中修复,然后对 A 进行了大量更改以提高性能。
决定将所有这些更改集成到项目 B 中。
所以这就是我现在正在做的。显然,有不少困难使这项任务难以管理。但它们都与我的问题无关。
我开始逐个创建 diff 的组件,以查看发生了什么变化并决定可以包含哪些内容,而不会破坏 A 中不存在的 B 中的功能。
我为每个组件创建了一个新分支(为了使其更易于管理 - 识别在特定组件之外更改代码的引用是什么)最初认为我可以进行合并,我似乎记得在之前使用合并它会产生冲突而不是过度写作;但是无论出于何种原因,当我尝试将 A 中的组件与 B 合并时,大部分 B 独有的代码都丢失了。
不过,什么可以起作用,我不愿意花时间在我不知道的可能出现坑的技术上,只是编辑从差异创建的补丁。
然后应用编辑的补丁。
因为在补丁中我可以并排看到代码的两面,我可以删除不希望删除代码的位 (-),并逐个考虑冲突。
有没有人试过这个?或者有人知道处理这类问题的更主流技术吗?
另一个问题是如何在不被 git 系统破坏的情况下更改补丁?