使用gitlog时,如何按用户进行筛选,以便只看到该用户的提交?
当前回答
由于另一个问题被锁定(可能是错误的),我将把这个放在这里:
显示作者及其提交次数:
git shortlog -nse
查找特定USERNAME的所有提交:
git log --author=USERNAME --oneline --color=never | awk '{print $1}' | xargs git show
其他回答
通过在.bashrc文件中添加这个小片段,以彩色显示x用户的n个日志。
gitlog() {
if [ "$1" ] && [ "$2" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1" --author="$2"
elif [ "$1" ]; then
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order -n "$1"
else
git log --pretty=format:"%h%x09 %C(cyan)%an%x09 %Creset%ad%x09 %Cgreen%s" --date-order
fi
}
alias l=gitlog
要显示Frank的最后10次提交:
l 10弗兰克
要显示任何人的最后20次提交:
l 20
要获取更多详细信息-(此处%an指作者)
使用此项:-
git log --author="username" --pretty=format:"%h - %an, %ar : %s"
在github上还有一个秘密方法。。。
您可以在提交视图中通过附加param?author=github_handle。例如,链接https://github.com/dynjs/dynjs/commits/master?author=jingweno显示了Dynjs项目的提交列表
一种可能的替代方法是使用名为mergestat的工具,该工具允许您针对repo中的提交历史运行SQL查询(除其他外)。
mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%'"
它有点冗长,但可以提供灵活性,以通用的方式具体查找您要查找的内容。
例如,过滤掉合并提交,仅显示过去一年中特定作者的提交:
mergestat "SELECT * FROM commits WHERE author_name LIKE '%Jon%' WHERE author_when > DATE('now', '-1 year') AND parents < 2"
完整披露:我是项目的维护者:)
git help log
为您提供gitlog的手册页。按/,然后键入“author”,然后按Enter键,在那里搜索“作者”。键入“n”几次以进入相关部分,其中显示:
git log --author="username"
正如已经建议的那样。
注意,这将为您提供提交的作者,但在Git中,作者可以是与提交者不同的人(例如,在Linux内核中,如果您以普通用户身份提交补丁,则可能由其他管理用户提交)?有关详细信息)
大多数时候,人们所说的用户既是提交者,也是作者。
推荐文章
- RPC失败;卷度传输已关闭,剩余未完成的读取数据
- 我应该在.gitignore文件中添加Django迁移文件吗?
- 错误:您对以下文件的本地更改将被签出覆盖
- Git rebase—即使所有合并冲突都已解决,仍然会继续报错
- 在Git中,我如何知道我的当前版本是什么?
- 跟踪所有远程git分支作为本地分支
- 为什么要把Gradle Wrapper提交给VCS?
- 自定义SSH端口上的Git
- git如何显示不存在于.gitignore中的未跟踪文件
- Git错误:遇到7个文件应该是指针,但不是
- GitHub克隆与OAuth访问令牌
- 移动(或“撤销”)最后一个git提交到非暂存区域
- 我可以在GitHub上对要点进行拉请求吗?
- Hg:如何做一个像git的rebase
- 如何丢弃远程更改并将文件标记为“已解决”?