正则表达式 – 忽略与git diff中的字符串匹配的更改

前端之家收集整理的这篇文章主要介绍了正则表达式 – 忽略与git diff中的字符串匹配的更改前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我对git中版本控制的大量文件进行了一个简单的更改,我想能够检查没有其他更改正在滑入这个大提交。

这些变化都是形式

-                       "main()",+                       OOMPH_CURRENT_FUNCTION,

其中“main()”可以是任何函数名称。我想生成不是这种形式的所有更改的差异。

git diff的-G和-S选项很接近 – 他们发现与一个字符串或正则表达式匹配的更改。

有没有办法做到这一点?

到目前为止的尝试

另一个question描述了正则表达式如何被否定,使用这种方法我认为命令应该是

git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'

但这只是返回错误消息

fatal: invalid log-grep regex: Invalid preceding regular expression

所以我猜git不支持这个正则表达式的功能

我还注意到,标准unix diff具有-I选项来“忽略其行匹配RE的更改”。但是我找不到使用unix diff工具替换git自己的diff的正确方法

由于您说可以找到与您的模式匹配的更改,因此我建议如下:

> git diff> full.txt
git diff -G你的模式> match.txt
> diff full.txt match.txt与你喜欢的diff程序(例如vimdiff)

如果只有与模式匹配的更改,则full.txt和match.txt应该相同。否则,最后一个diff应突出显示任何不匹配的更改。

猜你在找的正则表达式相关文章