正则表达式在git日志中使用精确短语

时间:2018-04-05 06:36:56

标签: python git github grep git-log

目前,我正致力于github中的挖掘软件存储库。我使用git log command来获取提交日志。但是当我只需要查找提交日志包含特定单词时,也会显示一些意外日志。

例如,我需要提交日志包含单词HBASE-792。我使用了命令git log --grep='HBASE-792' --oneline。但这些日志显示:

HBASE-7921. TestHFileBlock.testGzipCompression should ignore the block checksum
HBASE-7923 force unassign can confirm region online on any RS to get rid of double assignments
HBASE-7928 Scanning .META. with startRow and/or stopRow is not giving proper results; REVERT.  NEEDS SOME MORE WORK
Fix overlogging; part of HBASE-792 patch
Patches to alleviate HBASE-790 and HBASE-792

我需要的只是最后两个完全包含HBASE-792的提交日志。我应该用grep写什么模式?

2 个答案:

答案 0 :(得分:1)

您可以尝试在Perl模式下运行grep:

git log --grep='\bHBASE-792\b' --perl-regexp --oneline

我所做的就是在HBASE-792周围加上字边界。有了它们,您的模式将不再与例如HBASE-7923出现在其中一行不匹配的行的开头。

答案 1 :(得分:1)

您可以尝试将git log的输出传递给grep,并使用grep的-w标志。这里是我做的测试回购的示例运行:

Test $ git log --grep='HBASE-792' --oneline
09172fd asd sHBASE-792 asd
bea6628 asd HBASE-792s asd
3100179 asd HBASE-792 asd
4cb3200 HBASE-792
带有-w标志的

Test $ git log --oneline | grep -w "HBASE-792"
3100179 asd HBASE-792 asd
4cb3200 HBASE-792