2012-04-26 68 views

回答

11

首先,你不能简单地否定一个正则表达式中的单词,只要在它前面放一个巨大的声音(你在哪找到这个单词?)。您可能使用过lookarounds,但常规的grep正则表达式不支持它们。直接使用grep你可以通过-P选项来使用更强大的Perl正则表达式,但是我没有找到类似的git log选项。

虽然,有--no-merges选项,会过滤掉所有合并从日志中承诺:

git log --no-merges 

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

不打印与多个父提交

+1

+1 - - 合并提示;) – Konstantinos 2012-04-26 14:10:22

2

这是不正确的你使用正则表达式像这样的事情会更好:

git log | grep -o '^(Merge)'

,这将提供更多的信息:

git log --pretty=format:'%h by %an, %ar, %s' | grep -o '^((?!Merge).)*$'

我想你用!为了反转它,但我知道的唯一已知的逆向反向搜索方式就像上面那样。仍然 - 不合并会提供更好的信息,只是为将来的保护写

+0

不幸的是,这将只返回提交消息,更多信息。 – 2012-04-26 23:05:36

+0

更新了我的回答,但你的回答更好,只是为了将来的保证 – Learath2 2012-04-26 23:23:29

+0

谢谢你的回答Learath2。接受KL-7的事件,尽管它不是我正在寻找的东西。说,它做了诀窍:D – Konstantinos 2012-04-30 14:42:09