Git log - 如何列出所有不以特定单词开头的提交

Kon*_*nos 4 git git-bash

我的主要目的是过滤掉所有拉请求合并,因此理论上我希望以下工作(它没有)

git log --grep="^!(Merge)"
Run Code Online (Sandbox Code Playgroud)

我错过了什么吗?

KL-*_*L-7 11

首先,你不能简单地通过在它前面放一个爆炸来否定正则表达式中的一个单词(你在哪里找到它?).您可能已经使用了lookarounds,但是常规grep regexp不支持它们.直接使用grep可以传递-P选项以使用更强大的Perl regexp,但是我没有找到类似git log的选项.

但是,有一个--no-merges选项可以从日志中过滤掉所有合并提交:

git log --no-merges
Run Code Online (Sandbox Code Playgroud)

手册页说明--no-merges意味着:

不要打印具有多个父级的提交