gpt4 book ai didi

GIT:按作者组过滤日志

转载 作者:太空狗 更新时间:2023-10-29 14:32:48 24 4
gpt4 key购买 nike

我们公司分为多个团队,我们会在将代码发送给 QA 人员之前执行代码审查。

通常,我们接触的任何代码都由同一团队 (A) 内的某人审查,但在某些情况下,我们还需要接触另一个团队的代码 (B)。

对于这些情况,代码审查应该分为两部分:一部分由团队 A 审查,另一部分由团队 B 审查

我们的问题是很多时候团队 A 没有将代码发送给团队 B 审查,这导致团队 B 不知道这个新代码。

我想做的是定期运行一个脚本来查找代码的某些部分(通常是我们团队处理的模块的子目录)由不属于我们团队的任何人所做的提交,但不幸的是 git log 中的 --not 参数似乎不适用于 --author 所以我不能愉快地运行 git log --not --author "John"--author "Paul"--author "Ringo"模块/A 模块/B 模块/C

我的要求转化为类似“列出由不是 John、Paul 或 Ringo 的人完成的涉及模块/A、模块/B 或模块/C 的所有提交

有没有办法使用“官方”工具来做到这一点?我也会对开源脚本感兴趣,如果这意味着这样做会导致单行或接近单行的话。

最佳答案

编辑:这应该显示作者姓名不包含“John”、“Paul”或“Ringo”的提交。需要使用 PCRE 构建 git。

git log --perl-regexp --author='^(?!(.*(John|Paul|Ringo)))'

我将在下面保留以前的变体,因为它们仍然可能有用:


如果你的 git 是使用 PCRE 支持编译的,你应该能够使用否定的后视断言来做到这一点。像这样的事情应该做你想做的:

git log --perl-regexp --author='(?<!(john|paul|ringo))@'

请注意,正则表达式实际上是在寻找 @ john|paul|ringo开头.让它与名称一起使用会比较麻烦,因为可能没有方便的方法来找到前面没有您要排除的名称的“ anchor ”。

您可以尝试锚定作者行的开头并仅显示不以John|Paul|Ringo 开始的提交(即仍然会显示以 John 作为中间名的提交):

git log --perl-regexp --author='^(?!(John|Paul|Ringo))'

关于GIT:按作者组过滤日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22968710/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com