Git
Статистика Git
Поиск…
Синтаксис
- git log [<options>] [<диапазон модификаций>] [[-] <путь>]
- git log --pretty = короткий | git shortlog [<options>]
- git shortlog [<options>] [<диапазон версий>] [[-] <путь>]
параметры
параметр | подробности |
---|---|
-n , --numbered | Сортировка результата в соответствии с количеством коммитов на автора вместо алфавитного порядка |
-s , --summary | Предоставлять только подсчет количества коммандов |
-e , --email | Показать адрес электронной почты каждого автора |
--format [= <формат>] | Вместо темы фиксации используйте некоторую другую информацию для описания каждого фиксации. <format> может быть любой строкой, принятой с помощью опции --format git log . |
-w [<ширина> [, <indent1> [, <indent2>]]] | Линейный вывод вывода путем обертывания каждой строки по width . Первая строка каждой записи имеет отступы от indent1 число пробелов, а последующие строки indent2 промежуткам indent2 . |
<диапазон изменений> | Показывать только коммиты в указанном диапазоне версий. По умолчанию вся история до текущей фиксации. |
[ -- ] <путь> | Показывайте только коммиты, которые объясняют, как совпадают файлы, соответствующие path . Возможно, для путей можно использовать префикс «-», чтобы отделить их от параметров или диапазона ревизий. |
Фиксирует за разработчика
Git shortlog
используется для суммирования выходов журнала git и группировки коммитов по автору.
По умолчанию отображаются все сообщения фиксации, но аргумент --summary
или -s
пропускает сообщения и дает список авторов с их общим количеством коммитов.
--numbered
или -n
изменяет порядок от алфавита (по возрастанию автора) до числа спускаемых --numbered
.
git shortlog -sn #Names and Number of commits
git shortlog -sne #Names along with their email ids and the Number of commits
или же
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Примечание. Записи одного и того же лица не могут быть сгруппированы вместе, если их имя и / или адрес электронной почты были написаны по-разному. Например, John Doe
и Johnny Doe
будут отображаться отдельно в списке. Чтобы решить эту проблему, обратитесь к функции .mailmap
.
Фиксирует дату
git log --pretty=format:"%ai" | awk '{print " : "$1}' | sort -r | uniq -c
Общее количество фиксаций в филиале
git log --pretty=oneline |wc -l
Список каждой ветви и дата последней ревизии
for k in `git branch -a | sed s/^..//`; do echo -e `git log -1 --pretty=format:"%Cgreen%ci %Cblue%cr%Creset" $k --`\\t"$k";done | sort
Строки кода для каждого разработчика
git ls-tree -r HEAD | sed -Ee 's/^.{53}//' | \
while read filename; do file "$filename"; done | \
grep -E ': .*text' | sed -E -e 's/: .*//' | \
while read filename; do git blame --line-porcelain "$filename"; done | \
sed -n 's/^author //p' | \
sort | uniq -c | sort -rn
Список всех коммитов в хорошем формате
git log --pretty=format:"%Cgreen%ci %Cblue%cn %Cgreen%cr%Creset %s"
Это даст хороший обзор всех коммитов (1 на строку) с сообщением о дате, пользователе и фиксации.
Параметр --pretty
имеет много заполнителей, каждый из которых начинается с %
. Все варианты можно найти здесь
Найти все локальные хранилища Git на компьютере
Чтобы перечислить все местоположения репозитория git, вы можете запустить следующие
find $HOME -type d -name ".git"
Если у вас есть locate
, что это должно быть намного быстрее:
locate .git |grep git$
Если у вас есть gnu locate
или mlocate
, это будет выбирать только git dirs:
locate -ber \\.git$
Показывать общее количество фиксаций на автора
Чтобы получить общее количество git shortlog
сделанных каждым разработчиком или вкладчиком в репозитории, вы можете просто использовать git shortlog
:
git shortlog -s
который дает имена авторов и количество фиксаций каждым из них.
Кроме того, если вы хотите, чтобы результаты были рассчитаны для всех ветвей, добавьте в команду флаг --all
:
git shortlog -s --all