如何仅合并 vimdiff 中的远程更改?

How to merge only remote changes in vimdiff?

分叉 Github 存储库后,我对其进行了一些更改。这是很久以前的事了,现在上游 b运行ch 已经遥遥领先了。因此我想将这些远程更改合并到我的分叉仓库中。

我只在一个文件中发现了合并冲突。我继续 运行 vimdiff 作为 mergetool 来解决这些问题。 我只想 合并远程更改 并丢弃本地更改。

但是该文件中太多 很多相互冲突的帅哥。选择要合并的更改至少可以说是乏味的。

在 git 中合并有两个选项,可以默认使用远程更改(他们的)或本地更改(我们的)。

如果您只想解决合并中远程更改的冲突,您可以执行以下操作:

git merge -Xtheirs <branch>

如果您只想解决合并中本地更改的冲突,您可以执行以下操作:

git merge -Xours <branch>

您可以从git advanced merging documentation找到更多关于高级合并策略的信息。

使用 Vims global select 您可以将所有差异替换为 LOCAL、BASE 或 REMOTE

  1. 转到文件的第一行
:1
  1. 进入视觉模式
 <Shift>-V
  1. 转到文件底部,select 所有行
G
  1. 在所有行上发出 diffget 命令
:diffget REMOTE