要在Git中显示每个文件中每个作者的代码行,您可以使用以下命令:
bashgit ls-files | xargs -I{} git blame --line-porcelain {} | awk -F '^[^ ]+ [^ ]+ [^ ]+ ' '/^author / {author=$2} /^[0-9]/ {print FILENAME, $1, author}' | sort -k3,3 -k1,1 -k2,2n
这个命令的工作原理如下:
git ls-files
:列出仓库中的所有文件。xargs -I{} git blame --line-porcelain {}
:对每个文件执行git blame
命令,使用--line-porcelain
选项以易解析的格式输出信息。awk -F '^[^ ]+ [^ ]+ [^ ]+ ' '/^author / {author=$2} /^[0-9]/ {print FILENAME, $1, author}'
:使用awk
处理git blame
的输出,提取文件名、行号和作者。sort -k3,3 -k1,1 -k2,2n
:对输出进行排序,首先按作者(第三列),然后按文件名(第一列),最后按行号(第二列)。这个命令的输出将显示每个文件中每个作者的代码行,格式如下:
文件名 行号 作者
请注意,这个命令可能需要一些时间来处理大型仓库。
腾讯技术创作特训营第二季第3期
腾讯技术创作特训营第二季
腾讯技术创作特训营
云+社区沙龙online第6期[开源之道]
云+社区沙龙online [新技术实践]
云+社区沙龙online [新技术实践]
云+社区技术沙龙[第9期]
云+社区开发者大会(北京站)
Techo Day 第二期
领取专属 10元无门槛券
手把手带您无忧上云