我希望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 ...)
之类的事情?)
答案 0 :(得分:2)
diff允许您更改diff的格式。您想以专门的方式更改内容。使用diff
,git show
和awk
(或类似)来完成此操作是正确的。它遵循Unix在小工具之间管理文本的理念。
我建议将其设置为a git command alias或编写像~/bin/git-column-diff
这样的shell脚本。然后你可以git column-diff file1 file2
。
您可以滥用the textconv feature为您进行过滤,但这需要具有特殊扩展名的文件,并且会干扰文件的传播,而且d必须总是想要相同的列进行差异化。
你可以编写一个执行自定义差异的程序,并将GIT_EXTERNAL_DIFF
设置为指向此程序。