Чтобы избежать этой проблемы, используйте nextLine();
сразу после nextInt();
, поскольку это помогает очистить буфер. Когда вы нажимаете ENTER
, nextInt();
не захватывает новую строку и, следовательно, позже пропускает код Scanner
.
Scanner scanner = new Scanner(System.in);
int option = scanner.nextInt();
scanner.nextLine(); //clearing the buffer
вы можете использовать команду git effort
(из пакета git-extras
), которая показывает статистику о количестве фиксаций на каждый файл (по фиксации и активных дней).
EDIT: git effort is just скрипт bash вы можете найти здесь и адаптироваться к вашим потребностям, если вам нужно что-то более специальное.
git whatchanged --all | \grep "\.\.\." | cut -d' ' -f5- | cut -f2- | sort | uniq -c | sort
Если вы хотите видеть только ваши файлы, добавьте --author
в git whatchanged --author=name --all
.
Я заметил, что ответы 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
Для powershell, если вы установили git bash
git log --pretty=format: --name-only | sort | uniq -c | sort -Descending | select -First 10
Это версия 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
Мы также можем найти файлы, измененные между двумя коммитами или ветвями, например,
git log --pretty=format: --name-only <source_branch>...<target_branch> | sort | uniq -c | sort -rg | head -50
Это, вероятно, очевидно, но предоставленные запросы будут отображать все файлы, но, возможно, вам не интересно знать, что ваши файлы конфигурации или проекта наиболее обновляются. Простой grep будет изолировать ваши файлы кода, например:
git log --pretty=format: --name-only | grep .cs$ | sort | uniq -c | sort -rg | head -20
Вы можете сделать что-то вроде следующего:
git log --pretty=format: --name-only | sort | uniq -c | sort -rg | head -10
Журнал просто выводит имена файлов, которые были изменены в каждой фиксации, в то время как остальная часть просто сортирует и выводит верхние 10 наиболее часто встречающиеся имена файлов.