回答:
git effort
(git-extras
パッケージから)コマンドを使用して、ファイルごとのコミット数(コミット数とアクティブな日数)に関する統計を表示できます。
EDIT:gitの努力があるだけで bashスクリプトあなたがここに見つけることができるとあなたはもっと特別な何かが必要な場合は、あなたのニーズに適応します。
git help effort
それに関する情報はありません:/)。最初の結果セットはファイル名で並べられ、2番目の結果セットはファイルごとのコミット数で並べられていると思います。manページには、問題を報告するための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
たとえば、2つのコミットまたはブランチ間で変更されたファイルを見つけることもできます。
git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50