1

我正在使用meld和 git 进行合并,我想尝试 vimdiff。配置了与 git 的三路合并,然后是我自己的 diff 命令:

[merge]
    tool = vimdiff3
    conflictstyle = diff3
[mergetool "vimdiff3"]
    cmd = gvim -f -d \"$LOCAL\" \"$BASE\" \"$REMOTE\" \"$MERGED\"

但是每次我尝试运行 mergetool 时,git 都会快速响应“[file] 似乎没有变化”并跳过合并。

最重要的是,我想获得真正的三向合并(四个文件),底部有合并窗口,这可行,但我看到很多报告它在互联网上不起作用:

    cmd = gvim -f -d -c \"wincmd J\" \"$MERGED\" \"$LOCAL\" \"$BASE\" \"$REMOTE\"
4

1 回答 1

1

您可以检查 upcommingmergetools/vimdiff3设置(对于 git 2.0.x Q3 2014)是否适合您。

请参阅Felipe Contreras ( )的提交7c147b7,最近才在提交 3a9dae7(2014 年 6 月)中合并:felipec

mergetools: 添加vimdiff3模式

它类似于默认设置,只是其他窗口是隐藏的。
这确保了删除/添加的颜色在主合并窗口上仍然可见,但其他窗口不可见。

特别适用于 merge.conflictstyle=diff3。

gvimdiff3|vimdiff3)
  if $base_present
  then
    "$merge_tool_path" -f -d -c 'hid | hid | hid' \
      "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
  else
    "$merge_tool_path" -f -d -c 'hid | hid' \
      "$LOCAL" "$REMOTE" "$MERGED"
  fi
;;

新文件mergetools/vimdiff3已添加,这意味着您需要做的就是:

git mergetool --tool=vimdiff3

(无需配置mergetool.vimdiff3.cmd

于 2014-07-12T19:42:01.240 回答