"git log"能否根据提交信息忽略某些提交?

16

我正在使用git log命令来生成两个分支之间的差异。我使用的确切命令是:

git log --left-right --graph --cherry-pick --oneline sourceBranch...targetBranch

我想知道是否可以根据提交消息排除一些日志条目。例如,我们测试自动化团队的所有提交都包含某个标识符,我们称之为TEST_AUTO。当前,我的diff输出如下:

>   1e31b8x Merge pull request #1225 in base/project from feature/ABCD-1111 to master
|\  
| > b2f0dfx [ABCD-1111] rework help tour // fixes
| > 270072x [ABCD-1111] rework help tour // merge fixes
| > 98ffeax [ABCD-1111] rework help tour // merge fixes
| >   ff2e25x Merge branch 'master' into feature/ABCD-1111-rework-help-tour
| |\  
| > | f0daf2x [ABCD-1111] rework help tour // new menu
| > | c519a2x [ABCD-1111] rework help tour
| > | 6873cax [ABCD-1111] rework help tour // animations
| > | 944cc7x [ABCD-1111] rework help tour // fix phone fullscreen
| > | 72b3ffx [ABCD-1111] rework help tour // phone animations
| > | 7f7c50x [ABCD-1111] rework help tour // base logic
| > | b6dccex [ABCD-1111] rework help tour
| > | a30022x [ABCD-1111] rework help tour // code clean up and new icons
> | |   c0a3e1x Merge pull request #11361 in base/project from TEST_AUTO-123-bring-automation-code-to to master
|\ \ \  
| |_|/  
|/| |   
| > | 9837a4x [TEST_AUTO-123] Bring Android automation code to 123.X version
| > | 41b33cx Merge branch 'feature/automation' into TEST_AUTO-951-bring-automation-code-to
| > |   bb53f6x Merge branch 'feature/automation' into TEST_AUTO-951-bring-automation-code-to
| |\ \  
| | > | aa1a90x [TEST_AUTO-123] Bring Android automation code to 123.X version
| | > |   876ee8ex Merge pull request #12261 in base/project from bugfix/TEST_AUTO-789-android-fix to feature/automation
| | |\ \ \  
| | | > | | ef3fa1x [TEST_AUTO-456] fixed test_508()
| | | > | | a2d352x [TEST_AUTO-456] fixed test_186 and moved to PortfolioTest
| | | > | | 1880b0x [TEST_AUTO-456] small fix test_493
| | | > | | facc13x [TEST_AUTO-456] fixed test_493
| | | > | | 9ebce6x [TEST_AUTO-456] fix test_31734 (test_493)
| | | > | | 128890x [TEST_AUTO-456] fix test_31621 (test_384) and moved to common/MediaTest
| | | > | | ab64b8x [TEST_AUTO-456] fix test_498()
| | | > | | 7935aax [TEST_AUTO-456] fix test_31740 (test_498) (not ready)
| | | > | | ffb930x [TEST_AUTO-456]fixed test_31751 (test_508) and moved to common/SideMenuTest
| | | | > |   2b810ax Merge remote-tracking branch 'remotes/origin/feature/automation' into bugfix/TEST_AUTO-789-android-fix

这些日志产生了很多噪音,我对此不感兴趣。

理想情况下,我希望从比较中排除包含TEST_AUTO字符串的任何提交。我已经尝试将上面的命令管道传输到'grep -v',但那只是消除了包含它的行(显然),并留下了奇怪的空白。我想要完全防止它们被包括在内。


3
你试过使用--invert-grep吗? - JDB
1
使用 --invert-grep--grep=<pattern> - i_am_jorf
没有看到 --invert-grep 选项,但它完美地工作了。如果您将其发布为答案,我会接受它。谢谢! - AWT
1个回答

26

git log --invert-grep --grep=TEST_AUTO

来自 man git log:

   --invert-grep
       Limit the commits output to ones with log message that do not match the pattern specified with --grep=<pattern>.

2
对于--author也适用。 - A B
我原本期望这只是反转 grep(而不是反转作者),但最近行为发生了变化。你需要使用 git 2.35 或更新版本才能避免反转 --author - Max

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接