Відповіді:
Ви можете скористатися командою git effort(з git-extrasпакета), яка показує статистику про кількість комісій у файлах (за комісіями та активними днями).
EDIT: git зусилля - просто баш сценарій, який ви можете знайти тут і адаптувати до своїх потреб, якщо вам потрібно щось більш особливе.
git help effortне має про це інформації: /). Я припускаю, що перший набір результатів упорядковується за назвою файлу, а другий - за кількістю комірок у файлі. Сторінка людини також згадує github.com/tj/git-extras/isissue для повідомлення про проблеми
Ви можете зробити щось подібне:
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
Я помітив, що відповіді
Марка
та
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
Старе запитання, але я вважаю, що все ще дуже корисне питання. Ось робочий приклад прямої оболонки. Це дозволить отримати топ-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
Ми також можемо знайти файли, змінені між двома комітами або гілками, наприклад, наприклад
git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50
Це, мабуть, очевидно, але надані запити показуватимуть усі файли, але, можливо, вам не цікаво знати, що ваші конфігураційні файли чи файли проекту найбільш оновлені. Простий греп виділить ваші кодові файли, наприклад:
git log --pretty=format: --name-only | grep .cs$ | sort | uniq -c | sort -rg | head -20