首页 > 解决方案 > git mergetool 在cherry-pick 中显示了许多不相关的更改

问题描述

想象一下,我有一个主存储库和一些分叉的存储库。在一个分叉的 repo 中,已经在很久以前进行了一些更改。我特别想挑选一个提交给大师。想象一下原始文件(基于 repo 的文件)具有以下结构:

<div class="foo">
Text1
</div>
<div class="foo">
Text2
</div>

同时,master已经进化成这样:

<div class="foo bar">
Text1
</div>
<div class="foo bar">
Text2
</div>

然而,我想挑选的相关提交包含:

<div class="foo">
Text1
</div>
<div class="foo">
Changed Text2
</div>

当我运行cherry-pick 时,我(预期地)收到了存在合并冲突的消息。合并冲突很小,只有两条相关行:

<<<<<<< HEAD
<div class="foo bar">
Text2
=======
<div class="foo">
Changed Text2
>>>>>>> abababab Text

我想让我的生活更轻松,并用它git mergetool来解决这个问题。令我惊讶的是,不是只显示相关的微小变化,git mergetool而是突出显示每个实例

<div class="foo">

改为:

<div class="foo bar">

即,虽然冲突文件中包含的实际差异很小,git mergetool但是却混杂着数百个虚假差异(嗯,这并没有错,但它也无关紧要),这使得它无法使用。如果这有所不同,我正在使用 meld 进行差异化。如何让 mergetool 仅显示实际冲突文件中包含的冲突,而不是尝试与共同祖先进行三向合并?

标签: gitgit-mergegit-merge-conflict

解决方案


推荐阅读