在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