0

有没有办法以合并解析使用的格式格式化 git diff(例如git diff HEAD^或)?git diff origin/foo origin/bar

例如,我有一个(部分)看起来像的补丁

   yield (
     api.test('check the foos') +  #
-    api.properties(foos=[]) +  #
     api.frobozz(bar) +  #
     ...
   )

我想把这部分看作

yield (
   api.test('check the foos') +  #
<<<<<<<<<<<<<<<<<<<<<< origin
   api.properties(foos=[]) +  #
=============================
>>>>>>>>>>>>>>>>>>>>>>>> HEAD
   api.frobozz(bar) +  #
   ...
)
4

1 回答 1

0

简短的回答是否定的:git diff只比较两个提交,git merge运行两个不同 git diff的操作,然后结合这两个差异的结果,这就是为什么git merge有必要的信息。

要获得必要的信息,您需要第三次提交:您将生成然后合并的两个不同差异的共同起点。这两个提交的共同起点是什么?如果你能找到或制造一个,那么你就能得到你想要的。

(如果你只是想通过编辑 的输出来制造一个虚假的第三次提交git diff,你当然可以编写一个程序来做到这一点。但你必须编写程序:Git 不附带任何这样的东西。)

于 2020-03-24T19:47:54.853 回答