如何在正则表达式中获取git diff?

时间:2015-01-15 04:14:26

标签: git diff git-diff

我希望git diff仅在正则表达式中进行比较。例如:

修订版A中的文件内容:

A 0 1 
A 1 1 2
A 0 1 2 3
A 1 1 2 3 4

修订版B中的文件内容:

B 0 1
B 0 1 2
B 1 1 2 4
B 1 1 2 4 8 16

我可能想要忽略第一个单词(即' A'或' B'),匹配接下来的两个单词,并忽略该行的其余部分。在上文中,只应报告第二行和第三行。

How to grep the git diff?表示git -G过去常常做我想做的事,但行为已发生变化。有没有办法让这种情况发生(没有做diff <(git show ... | awk ...) <(git show ... | awk ...)之类的事情?)

1 个答案:

答案 0 :(得分:2)

diff允许您更改diff的格式。您想以专门的方式更改内容。使用diffgit showawk(或类似)来完成此操作是正确的。它遵循Unix在小工具之间管理文本的理念。

我建议将其设置为a git command alias或编写像~/bin/git-column-diff这样的shell脚本。然后你可以git column-diff file1 file2

可以滥用the textconv feature为您进行过滤,但这需要具有特殊扩展名的文件,并且会干扰文件的传播,而且d必须总是想要相同的列进行差异化。

可以编写一个执行自定义差异的程序,并将GIT_EXTERNAL_DIFF设置为指向此程序。