gitでリポジトリのホットなファイルを見つける


経緯

既存のプロジェクトにジョインしたときに、色々なファイルが多くてパンクしていました。そこでどのファイルが盛んに変更されているのかを注目して、そのホットなファイルがそのプロジェクトで肝となっていると思い、まずはそのコミット数が多いファイルを特定してどのような流れになっているのか調べてみようと思いました。
githubでは、コミット数ごとにファイルを検索できたりしないので今回はよく修正されているホットなファイルの見つけ方を共有しておきます。

方法

今回知りたいプロジェクトで下記のコマンドを叩いてあげます。

git ls-files | while read file ; do   commits=`git log --oneline -- $file | wc -l`;   echo "$commits - $file"; done | sort -n

結果

コミット数順にターミナルに表示することができました。

※省略
       2 - Pods/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift
       3 - Podfile
       3 - Podfile.lock
       3 - Pods/Manifest.lock
       3 - Pods/Pods.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/Pods-conpass.xcscheme
       3 - Pods/Pods.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/Pods-conpassTests.xcscheme
       3 - Pods/Pods.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/Pods-conpassUITests.xcscheme
       3 - Pods/Pods.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/RxCocoa.xcscheme
       3 - Pods/Pods.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/RxSwift.xcscheme
       3 - conpass.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcschemes/xcschememanagement.plist
       4 - Pods/Pods.xcodeproj/project.pbxproj
       6 - conpass/AppDelegate.swift
       7 - conpass.xcodeproj/xcuserdata/shiroma_daisuke.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
       7 - conpass.xcworkspace/xcuserdata/shiroma_daisuke.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist
      11 - conpass/ConnpassModel.swift
      12 - conpass/ConnpassViewModel.swift
      13 - conpass.xcodeproj/project.pbxproj
      37 - conpass/ViewController.swift