我正在尝试打印每个作者对Git存储库的每行贡献。
为此,我使用以下命令,该命令改编自How to count total lines changed by a specific author in a Git repository?
git ls-tree -r -z --name-only HEAD -- */*.c | xargs -0 -n1 git blame \
--line-porcelain HEAD |grep "^author "|sort|uniq -c|sort -nr
但是,我得到了以下错误:
fatal: cannot stat path 'HEAD': No such file or directory.
我哪里做错了?
3条答案
按热度按时间1tu0hz3e1#
好吧,经过进一步的调查,我发现这个对SO。
答案来自Eric Z的支持
结果
w1jd8yoj2#
这意味着表达式的第一部分没有给出任何结果。
没有后面的部分;也许这会给你空的输出。修正这个表达式来列出你想要处理的文件...如果我在一个不包含任何.c文件的存储库中使用它;它给了我和你一样的错误。要么删除选项
*/*.c
,要么修复为*/*.cpp
修复了它(取决于你想要的结果)bprjcwpo3#
作为@chris-maes accepted answer的扩展名,下面是如何按文件扩展名分组:
如果您希望过滤到特定作者,请使用posix regex