加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-14 06:33:10 所属栏目:百科 来源:网络整理
导读:我对git中版本控制的大量文件进行了一个简单的更改,我想能够检查没有其他更改正在滑入这个大提交。 这些变化都是形式 - "main()",+ OOMPH_CURRENT_FUNCTION, 其中“main()”可以是任何函数的名称。我想生成不是这种形式的所有更改的差异。 git diff的-G和-S
我对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应突出显示任何不匹配的更改。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读