在保留 3 向合并信息的同时解决 IDE 中的合并冲突
Resolving Merge Conflict in IDE Whilst Retaining 3-Way Merge Info
(我使用 SourceTree 作为我的 Git 工具,使用 Beyond Compare 来解决合并冲突,使用 Eclipse 作为我的 Java IDE。)
冲突很复杂,我无法在合并工具中解决,必须手动解决(跨多个文件)。
理想情况下,我只想使用我的代码版本,查看 Beyond Compare 中的冲突,并用它来建议我在 Eclipse 中的更改。
不起作用的东西:
- 如果我只是在Eclipse中打开冲突的版本,那么代码
不编译,所以我失去了静态类型的所有用处
检查等
- 如果我只是 "resolve using ours/mine" 在 Git (SourceTree) 这样我
可以在 Eclipse 中打开它,然后我失去了所有漂亮的三路合并
我本可以用来解决冲突的信息。
- 与 master 对文件的 HEAD 版本进行简单的比较
版本也不能解决我的问题——差异太小
信息。我要三路信息
我是不是用错了方法?我应该使用不同的策略来解决冲突吗?在编辑文件的特定版本时,是否可以使用 Git 或 BC4 的功能来单独保存冲突信息?
我发现一些有用的东西(灵感来自 Stun Brick 的建议):
开始合并,生成LOCAL、BASE、REMOTE文件。
将这些文件移出到一个单独的目录中。
通过获取本地副本解决合并(在 SourceTree 中:解决冲突 -> 使用我的解决。在 Git 中:git checkout --ours PATH/FILE
)。
在Eclipse中打开文件的本地版本。
打开 BC4 中的 LOCAL、BASE 和 REMOTE 文件。
现在我可以在 Eclipse 中随心所欲地进行编辑,而不会影响 BC4 显示的内容。
就个人而言,我会将 THEIRS 版本复制到 Eclipse 中,然后从那里重新引入本地更改。如果您的 MINE 包含明显更多的更改,或者重构了大量代码,那么从它开始可能会更好。
可以这样做:
- 在 Eclipse 中打开正在进行的合并文件(带有愚蠢的合并标签)
- 在 Eclipse 中查看 THEIRS 提交,(使用 git 插件),
- 打开文件的特定提交版本(无合并标签)
- 正在复制所有内容。
- 同时打开 MINE 提交的版本并重新引入您的更改,手动继续合并。
这应该允许您从一个工作的矿山或他们的矿山开始,一点一点地添加到它。
这将允许您仍然使用 BC 对更改最显着的文件的建议。由于 git 一次只打开一个文件夹的外部合并,如果您觉得需要,您必须在 BC 中手动打开其他文件。
然后您可以手动将每个文件标记为 "resolved"。
(我使用 SourceTree 作为我的 Git 工具,使用 Beyond Compare 来解决合并冲突,使用 Eclipse 作为我的 Java IDE。)
冲突很复杂,我无法在合并工具中解决,必须手动解决(跨多个文件)。
理想情况下,我只想使用我的代码版本,查看 Beyond Compare 中的冲突,并用它来建议我在 Eclipse 中的更改。
不起作用的东西:
- 如果我只是在Eclipse中打开冲突的版本,那么代码 不编译,所以我失去了静态类型的所有用处 检查等
- 如果我只是 "resolve using ours/mine" 在 Git (SourceTree) 这样我 可以在 Eclipse 中打开它,然后我失去了所有漂亮的三路合并 我本可以用来解决冲突的信息。
- 与 master 对文件的 HEAD 版本进行简单的比较 版本也不能解决我的问题——差异太小 信息。我要三路信息
我是不是用错了方法?我应该使用不同的策略来解决冲突吗?在编辑文件的特定版本时,是否可以使用 Git 或 BC4 的功能来单独保存冲突信息?
我发现一些有用的东西(灵感来自 Stun Brick 的建议):
开始合并,生成LOCAL、BASE、REMOTE文件。
将这些文件移出到一个单独的目录中。
通过获取本地副本解决合并(在 SourceTree 中:解决冲突 -> 使用我的解决。在 Git 中:git checkout --ours PATH/FILE
)。
在Eclipse中打开文件的本地版本。
打开 BC4 中的 LOCAL、BASE 和 REMOTE 文件。
现在我可以在 Eclipse 中随心所欲地进行编辑,而不会影响 BC4 显示的内容。
就个人而言,我会将 THEIRS 版本复制到 Eclipse 中,然后从那里重新引入本地更改。如果您的 MINE 包含明显更多的更改,或者重构了大量代码,那么从它开始可能会更好。
可以这样做:
- 在 Eclipse 中打开正在进行的合并文件(带有愚蠢的合并标签)
- 在 Eclipse 中查看 THEIRS 提交,(使用 git 插件),
- 打开文件的特定提交版本(无合并标签)
- 正在复制所有内容。
- 同时打开 MINE 提交的版本并重新引入您的更改,手动继续合并。
这应该允许您从一个工作的矿山或他们的矿山开始,一点一点地添加到它。
这将允许您仍然使用 BC 对更改最显着的文件的建议。由于 git 一次只打开一个文件夹的外部合并,如果您觉得需要,您必须在 BC 中手动打开其他文件。
然后您可以手动将每个文件标记为 "resolved"。