在工作中,我们有一个git repo,其中大多数提交都是由bot用户自动提交的.有时我更喜欢从该repo查看git日志,但没有看到自动提交.我想它可以被描述为倒置的"git log --author"或"git log --exclude-author = botuser",如果存在选项的话.
目前我执行以下操作,缩写为bash别名.
git log --format="%H %aE" | grep -v -F botuser@domain | while read hash email; do git log -1 $hash; echo; done | less
Run Code Online (Sandbox Code Playgroud)
我的问题是,如果对我想要完成的事情有一个不那么强硬的解决方案?
quo*_*tor 38
来自https://coderwall.com/p/tzdzwa:
git log --perl-regexp --author='^((?!excluded-author-regex).*)$'
Run Code Online (Sandbox Code Playgroud)
这对我有用.
如果您不想--perl-regexp每次都指定:
git config --global grep.patternType perl
Run Code Online (Sandbox Code Playgroud)
Von*_*onC 29
警告,mateor的答案将不再适用于 Git 2.35(2022 年第一季度)。
\n # WRONG:\n git log --invert-grep --author=<pattern>\nRun Code Online (Sandbox Code Playgroud)\nquodlibetor的答案仍然有效:
\ngit log --perl-regexp --author=\'^((?!excluded-author-regex).*)$\'\nRun Code Online (Sandbox Code Playgroud)\n但是:不再 git log --invert-grep --author=<pattern>排除作者。
" git log --invert-grep --author=<name>" ( man )用于排除给定作者编写的提交,但现在 " --invert-grep" 只影响由 " " 选项进行的匹配--grep=<pattern>。
请参阅Ren\xc3\xa9 Scharfe ( )的提交 794c000(2021 年 12 月 17 日)。\n (由Junio C Hamano 合并 -- --提交2043ce8,2022年 1 月 5 日)rscharfegitster
\n\n\n
log:--invert-grep只允许反转--grep报告人:Dotan Cohen
\n
\n签署人:Ren\xc3\xa9 Scharfe
\n\n该选项
\n--invert-grep被记录为过滤掉消息与--grep过滤器匹配的提交。
\n但是,它也会影响标头匹配 (--author,--committer),这不是有意的。将该选项的处理移至
\ngrep.c,因为只有那里的代码才能区分标头中的匹配与消息正文中的匹配。
\n如果--invert-grep给出则启用扩展表达式(不是正则表达式类型,我们只需要 \'git grep\' ( man )即可--not工作),否定主体模式并通过捎带机制检查它们是否collect_hits匹配grep_source_1()。收集结构中的匹配
\ngrep_opt有点不确定,但是"last_shown"我们有一个将状态信息写入该结构的先例。
为什么?经过2017 年 6 月的初步讨论后,2021 年 12 月再次讨论:
\n\n\nbug发生之前你做了什么?
\nRun Code Online (Sandbox Code Playgroud)\n$ git log -8 --author=Shachar --grep=Revert --invert-grep\n您预计会发生什么?
\n我希望看到最后 8 个提交,其中提交消息中
\nShachar没有\n字符串“ ”。Revert相反发生了什么?
\n提交列表包括除 之外的作者的提交
\nShachar。您的预期与实际发生的情况有何不同?
\n当使用“ ”\n选项时, “
\n--author”过滤器似乎被忽略。\n我也尝试更改选项的顺序,但结果\n保持不变。--invert-grep
ham*_*mar 17
目前还不是,虽然似乎已经讨论-v了将来支持一个选项,或者目前的git log --not工作是什么--author,--committer以及--grep.
另请参见:如何反转git log --grep模式.
mat*_*eor 14
其他一些答案引用了部分内容,但是我使用在这里看到的策略在回购中取得了成功
git log --invert-grep --author=<pattern>
Run Code Online (Sandbox Code Playgroud)
您可以根据需要添加任意数量的作者模式。就我而言,最好的模式是完整的电子邮件,因为它是唯一的
| 归档时间: |
|
| 查看次数: |
9009 次 |
| 最近记录: |