如何在git log中使用--grep实现多关键词的逻辑与匹配?
如何查找同时包含多个关键词的Git提交
你遇到的问题是因为默认情况下,多个--grep参数是逻辑或的关系,只要提交消息包含任意一个关键词就会被返回。要实现逻辑与(同时包含所有关键词),有两种可行的方法:
使用
--all-match选项(Git 2.4及以上版本支持)
直接在原有命令后加上--all-match,就能让所有--grep条件同时生效:git log --grep="x" --grep="y" --all-match这个方法最直观,也是官方推荐的方式。
使用正则表达式匹配(兼容旧版本Git)
如果你的Git版本低于2.4,可以用正则表达式实现“同时包含x和y”的逻辑,不管两个关键词的顺序:# 基本正则语法 git log --grep="x.*y\|y.*x" # 扩展正则语法(更简洁) git log -E --grep="x.*y|y.*x"这里的正则表示“x后面跟着y,或者y后面跟着x”,本质上就是提交消息同时包含两个关键词。
内容的提问来源于stack exchange,提问作者Josh Brunton
相关产品推荐
相关产品推荐

