我对git中受版本控制的大量文件做了一个简单的更改,我希望能够检查没有其他更改正在进入这个大型提交.
这些变化都是形式
- "main()",
+ OOMPH_CURRENT_FUNCTION,
Run Code Online (Sandbox Code Playgroud)
其中"main()"可以是任何函数的名称.我想生成不属于这种形式的所有更改的差异.
git diff的-G和-S选项非常接近 - 它们发现与字符串或正则表达式匹配的更改.
有没有办法做到这一点?
另一个问题描述了如何使用这种方法来否定正则表达式,我认为命令应该是
git diff -G '^((?!OOMPH_CURRENT_FUNCTION).)*$'
Run Code Online (Sandbox Code Playgroud)
但这只是返回错误消息
fatal: invalid log-grep regex: Invalid preceding regular expression
Run Code Online (Sandbox Code Playgroud)
所以我猜git不支持这个正则表达式功能.
我还注意到标准的unix diff有-I选项"忽略其行符合RE的变化".但我找不到用unix diff工具替换git自己的diff的正确方法.