diff3 以 git 冲突风格输出,包括可合并的帅哥

问题描述 投票:0回答:1

我想看到三个文件的三向差异,每个差异输出为 git 风格的冲突。也就是说,公共行逐字显示,文件的不同部分用冲突标记“<<<<<<", "||||||", "======", and ">>>>>>”(也称为“冲突括号”)显示:

common line 1
common line 2
<<<<<<<
text from mine.txt
|||||||
text from base.txt
more text from base.txt
=======
text from yours.txt
>>>>>>>
common line 3
common line 4
<<<<<<<
same text in mine.txt and yours.txt, none in base.txt
|||||||
=======
same text in mine.txt and yours.txt, none in base.txt
>>>>>>>
common line 5
common line 6

最重要的是,我希望每个差异都用冲突括号标记,包括可合并的差异。

以下是一些不起作用的选项:

  • git diff
    只接受两个文件作为输入;也就是说,它比较两件事而不是三件事。
  • git merge-file
    不显示可合并的差异(它合并它们)。
  • diff3 -m
    就像
    git merge-file
    :关闭:它显示整个文件,带有冲突标记 冲突,但它不显示可合并差异的冲突标记。
  • diff3
    显示所有差异,甚至是可合并的差异,但不以给定格式显示。
  • diff3 -A
    不显示所有差异,可合并的差异不会带有冲突标记输出。

我可以编写一个程序,获取

diff3
输出和原始文件,并以 git 样式输出冲突的文件。但是,如果可以的话,我宁愿避免这种情况。

git diff git-diff diff3
1个回答
0
投票

Git 的

vimdiff
合并工具向您显示所有四个版本(我们的、基础的、他们的、到目前为止的结果),您可以使用
]c
[c
逐步完成更改,包括所有自动合并的更改并查看所有内容,
1do
获取本地版本,
2do
获取基础版本,
3do
获取远程版本。

© www.soinside.com 2019 - 2024. All rights reserved.