Answers:
您可以使用git effort
(来自git-extras
软件包)命令,该命令显示有关每个文件的提交次数(按提交次数和活动天数)的统计信息。
编辑:git的努力只是一个bash脚本,您可以在这里找到并适应您的需求,如果您需要更特殊的东西。
git help effort
对此没有信息:/)。我假设第一组结果按文件名排序,第二组结果按每个文件的提交次数排序。该手册页还提到了github.com/tj/git-extras/issues报告问题
您可以执行以下操作:
git log --pretty=format: --name-only | sort | uniq -c | sort -rg | head -10
日志仅输出每次提交中已更改的文件的名称,而日志的其余部分仅排序并输出最常出现的前10个文件名。
--branches
到中git log
。
git log --pretty=format: --since="1 year ago" --name-only -- "*.java" | sort | uniq -c | sort -rg | head -10
我注意到
Mark
和
sehe的
答案都不--follow
是文件,也就是说,一旦文件重命名,它们就会停止。这个脚本会慢很多,但是可以达到这个目的。
git ls-files |
while read aa
do
printf . >&2
set $(git log --follow --oneline "$aa" | wc)
printf '%s\t%s\n' $1 "$aa"
done > bb
echo
sort -nr bb
rm bb
roles
对于我的情况,但是可以轻松修改以适合您的用例。
这是Windows版本
git log --pretty=format: --name-only > allfiles.csv
然后在excel中打开
A1: FileName
A2: isVisibleFilename >> =IFERROR(IF(C2>0,TRUE,FALSE),FALSE)
A3: DotLocation >> =FIND("@",SUBSTITUTE(A2,".","@",(LEN(A2)-LEN(SUBSTITUTE(A2,".","")))/LEN(".")))
A4: HasExt >> =C2>1
A5: TYPE >> =IF(D2=TRUE,MID(A2,C2+1,18),"")
创建数据透视表
values: Type
Filter: isFilename = true
Rows : Type
Sub : FileName
click [Count Of TYPE] -> Sort -> Sort Largest To Smallest
旧问题,但我认为仍然是一个非常有用的问题。这是笔直的Powershell中的工作示例。相对于您所在的分支,这将在您的存储库中获取变化最大的10个文件。
git log --pretty=format: --name-only | Where-Object { ![string]::IsNullOrEmpty($_) } | Sort-Object | Group-Object | Sort-Object -Property Count -Descending | Select-Object -Property Count, Name -First 10
我们还可以找出在两次提交或分支之间更改的文件,例如
git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50