3

这基本上是主服务器上的大量 C 类被重构为两个较小的类 C1 和 C2 的结果。然后 C 成为 C2 的子类,并缩减为框架版本以实现向后兼容性。所以从那时起,master 包含了 C、C1 和 C2。在那个主提交上,git 说 C 被重命名为 C1。分支在此发生之前最后一次更新。(所有 C++ 代码,如果它有助于可视化所涉及的文件)

显然,当我尝试将分支变基到 master 上时,存在需要解决的冲突。

像往常一样,我使用了mergetool。

所以现在 mergetool 提出了以下内容:在本地,我有 C 的骨架版本。Base 和 Remote 对 C 有很多更改。

因为 C 的骨架版本存在于 Local 上,所以我得出结论,来自 Base 和 Remote 的更改实际上应该进入 C1,而不管 C。

我的问题是,我该怎么做?

4

1 回答 1

4

可能在这个 rebase 实例上,合并冲突的更直接的解决方法是:

    git checkout --ours C
    git show :1:/path/to/C # 检查需要从 Base 复制到 C1 的内容
    git show :3:/path/to/C # 检查需要从远程复制到 C1 的内容
    git 添加 /path/to/C
    git 添加 /path/to/C1
  • git commit
于 2010-06-02T05:43:17.273 回答