合并 git 和 vim 而不使用自动合并 MERGED

合并 git 和 vim 而不使用自动合并 MERGED

我想使用 vim(可能是 fugitive)来合并我的冲突,但我讨厌自动合并的冲突标记。我正在寻找类似的东西

|-------------------------------|
|         |          |          |
| LOCAL   | HEAD     |   REMOTE |
|         |          |          |
|-------------------------------|
|                               |
|    clean head to merge        |
|       changes into            |
|-------------------------------|

我该如何设置?

答案1

要始终关闭冲突标记,您可以配置二进制合并算法(来源):

$ git config merge.default binary

或者,索引具有所有不同的版本;只需用您想要的覆盖您的工作副本:

$ git checkout --ours <filename>
$ git checkout --theirs <filename>
$ git checkout-index -f --stage=1 <filename>    # for the base

(和逃犯您可以直接在 Vim 内部执行此操作。

答案2

我使用 Fugitive。使用 vimdiff + Fugitive 解决合并冲突每当我忘记如何做时,我就会反复使用这种方法。

  1. 打开一个有冲突的文件并输入:Gvdiff(这会给你一个你想要的垂直分割)
  2. 您使用:diffput(或仅使用dp)将代码从本地/远程窗口推送到 HEAD
  3. 一旦你对更改类型感到满意:Gwrite,它将关闭差异窗口并将文件添加到 Git 索引中,准备提交

相关内容