我想使用 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 解决合并冲突每当我忘记如何做时,我就会反复使用这种方法。
- 打开一个有冲突的文件并输入
:Gvdiff
(这会给你一个你想要的垂直分割) - 您使用
:diffput
(或仅使用dp
)将代码从本地/远程窗口推送到 HEAD - 一旦你对更改类型感到满意
:Gwrite
,它将关闭差异窗口并将文件添加到 Git 索引中,准备提交