列出其他人的提交(即不是我)?

时间:2010-08-10 10:31:22

标签: git version-control

是否有一种标准方法可以列出其他人(即非我自己)在git存储库中提交的所有提交内容?

我尝试了git log --not --author=username,但似乎--not仅适用于修订。 git log的联机帮助页似乎无法提供反转--author等谓词的方法。

(我在工作中使用git-svn,想要了解自上次运行git svn rebase后我的同事发生了哪些变化,或者更常见的是在过去X天。知道我改变了什么,我只是想看看其他人触摸了哪些文件/阅读他们的提交日志消息/可能会查看有趣的补丁/等。)

编辑: 精炼范围,我实际上对“最近”比“自上次git svn rebase”更感兴趣。

2 个答案:

答案 0 :(得分:5)

这不是一个真正的解决方案,但是对于它的价值,你可以使用--author使用正则表达式匹配的事实来解决问题。如果你的名字是Jefromi:

git log --author='^[^J]\|J[^e]\|Je[^f]' # and so on

这很糟糕,但它可能足以满足您的目的。 (如果没有其他人的名字以与你的相同的字母开头,它会更短。)

最近,除了使用分支缩小范围(start..end^stop1 ^stop2 branch等)之外,您还可以使用--since=<date>选项。

答案 1 :(得分:2)

git log --perl-regexp --author='^(?!RobM)'

说明:使用^将正则表达式锚定到字符串的开头;然后使用前瞻(?!whatever)禁止在该位置之后出现你的名字。这样,您甚至可以排除多位作者的提交:

git log --perl-regexp --author='^(?!jack|jill)'