首页 > 解决方案 > diff 命令告诉我什么?

问题描述

我很困惑,因为我看不出这些文件有什么不同。我运行以下命令:

diff -B -w -b foo/user_advances.go bar/user_advances.go

我明白了:

36a37
>   Executed        bool            `boil:"executed" json:"executed" toml:"executed" yaml:"executed"`
40d40
<   Executed        bool            `boil:"executed" json:"executed" toml:"executed" yaml:"executed"`
59a60
>   Executed        string
63d63
<   Executed        string
77a78
>   Executed:        "executed",
81d81
<   Executed:        "executed",
143a144
>   Executed        whereHelperbool
147d147
<   Executed        whereHelperbool
161a162

但我在这里没有看到任何差异,所以这是怎么回事?

标签: diffgit-diff

解决方案


发生的事情是文件中的行的顺序略有不同。

36a37意味着必须将以下文本添加到第 36 行之后的第一个文件中,以获得第二个文件中的内容。这40d40意味着必须从第一个文件的第 40 行删除以下文本才能获得第二个文件中的内容。由于两种情况下的文本相同,这意味着第 40 行的内容被删除并移至第 37 行。

同样,删除第63行的内容,移到第60行。删除第81行的内容,移到第78行。以此类推……

添加-c到命令行可能会使这一点更清楚。告诉 diff 围绕每个-c差异提供 3 行上下文,因此您将更容易看到文件之间的差异。


推荐阅读