获取在Git中两次提交之间修改次数最多的文件

获取在Git中两次提交之间修改次数最多的文件,git,shell,powershell,Git,Shell,Powershell,最近,我发现我正在处理的项目比我预期的有更多的bug,我想知道在我们的sprint过程中哪些文件更改最多 我可以这样做,但它只显示更改了哪些文件,而不显示更改了多少次 git diff --name-only SHA1 SHA2 请让我按照正确的方向编写一个脚本,以显示在两次提交之间更改最多的文件 提前谢谢 从中,您需要--stat或--numstat,具体取决于您希望输出的外观: git diff --stat hash1 hash2 .file1.un~ | Bin 0 ->

最近,我发现我正在处理的项目比我预期的有更多的bug,我想知道在我们的sprint过程中哪些文件更改最多

我可以这样做,但它只显示更改了哪些文件,而不显示更改了多少次

git diff --name-only SHA1 SHA2
请让我按照正确的方向编写一个脚本,以显示在两次提交之间更改最多的文件

提前谢谢

从中,您需要
--stat
--numstat
,具体取决于您希望输出的外观:

  git diff --stat hash1 hash2

  .file1.un~ | Bin 0 -> 948 bytes
  .file2.un~ | Bin 0 -> 523 bytes
  file1      |  25 +++++++++++++++++++++++++
  file2      |   8 ++++++++
  4 files changed, 33 insertions(+)

使用
--format=%n
为每个提交获取一个空行,将它们全部折叠为一个已排序和计数的条目。然后在
组对象中整理每个对象的文件名


最近10次提交的
| sort | uniq-c
源的Powershell翻译示例。您可以根据自己的需要随意更改。如果遇到超过两位数的事件,请相应地更改
sprintf
表达式
%02d”

git log --name-only --pretty="%n" HEAD~10..HEAD |
egrep '.' |
sort |
uniq -c  |
perl -pe 's/([0-9]+)/sprintf("%02d",$1)/e' |
sort -r |
less

你的意思是像换了几行?
git log --name-only --format=%n SHA1..SHA2 | Group-Object | Format-Table Count,Name
git log --name-only --pretty="%n" HEAD~10..HEAD |
egrep '.' |
sort |
uniq -c  |
perl -pe 's/([0-9]+)/sprintf("%02d",$1)/e' |
sort -r |
less