在Git中查找大部分已更改的文件

我怎样才能显示最常更改的Git文件?

你可以使用git-extras包( git-extras package)命令,该命令显示每个文件(提交和活动date)有多less次提交的统计信息。

编辑:混帐努力只是一个bash脚本, 你可以在这里find适应你的需求,如果你需要更特别的东西。

你可以做如下的事情:

 git log --pretty=format: --name-only | sort | uniq -c | sort -rg | head -10 

日志只输出在每个提交中已经被改变的文件的名称,而其余的只是sorting并输出前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 

git-most.sh

对于PowerShell,假设你安装了git bash

 git log --pretty=format: --name-only | sort | uniq -c | sort -Descending | select -First 10 

这是一个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),"") 

创build数据透视表

 values: Type Filter: isFilename = true Rows : Type Sub : FileName click [Count Of TYPE] -> Sort -> Sort Largest To Smallest 
 git whatchanged --all | \grep "\.\.\." | cut -d' ' -f5- | cut -f2- | sort | uniq -c | sort 

如果你只想看到你的文件添加 – 作者git whatchanged --author=name --all

我们也可以找出在两个提交或分支之间改变的文件,例如

 git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50 

这可能很明显,但是,提供的查询将显示所有文件,但是,也许你不知道你的configuration或项目文件是最新的。 一个简单的grep将隔离到你的代码文件,例如:

 git log --pretty=format: --name-only | grep .cs$ | sort | uniq -c | sort -rg | head -20