Как найти наиболее измененный файл в репозитории Git? [Дубликат]

Чтобы избежать этой проблемы, используйте nextLine(); сразу после nextInt();, поскольку это помогает очистить буфер. Когда вы нажимаете ENTER, nextInt(); не захватывает новую строку и, следовательно, позже пропускает код Scanner.

Scanner scanner =  new Scanner(System.in);
int option = scanner.nextInt();
scanner.nextLine(); //clearing the buffer
76
задан Steven Penny 1 October 2015 в 19:07
поделиться

8 ответов

вы можете использовать команду git effort (из пакета git-extras), которая показывает статистику о количестве фиксаций на каждый файл (по фиксации и активных дней).

EDIT: git effort is just скрипт bash вы можете найти здесь и адаптироваться к вашим потребностям, если вам нужно что-то более специальное.

31
ответ дан Asenar 27 August 2018 в 16:51
поделиться
git whatchanged --all | \grep "\.\.\." | cut -d' ' -f5- | cut -f2- | sort | uniq -c | sort

Если вы хотите видеть только ваши файлы, добавьте --author в git whatchanged --author=name --all.

2
ответ дан Andrew Anthony Gerst 27 August 2018 в 16:51
поделиться

Я заметил, что ответы Mark и sehe's не делают --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

6
ответ дан Community 27 August 2018 в 16:51
поделиться

Для powershell, если вы установили git bash

git log --pretty=format: --name-only | sort | uniq -c | sort -Descending | select -First 10
3
ответ дан hyeomans 27 August 2018 в 16:51
поделиться

Это версия 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
3
ответ дан Mickey Perlstein 27 August 2018 в 16:51
поделиться

Мы также можем найти файлы, измененные между двумя коммитами или ветвями, например,

git log  --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50 
0
ответ дан Pawan Maheshwari 27 August 2018 в 16:51
поделиться

Это, вероятно, очевидно, но предоставленные запросы будут отображать все файлы, но, возможно, вам не интересно знать, что ваши файлы конфигурации или проекта наиболее обновляются. Простой grep будет изолировать ваши файлы кода, например:

git log --pretty=format: --name-only | grep .cs$ | sort | uniq -c | sort -rg | head -20
0
ответ дан Reginald Blue 27 August 2018 в 16:51
поделиться

Вы можете сделать что-то вроде следующего:

git log --pretty=format: --name-only | sort | uniq -c | sort -rg | head -10

Журнал просто выводит имена файлов, которые были изменены в каждой фиксации, в то время как остальная часть просто сортирует и выводит верхние 10 наиболее часто встречающиеся имена файлов.

102
ответ дан Steven Penny 27 August 2018 в 16:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: