Поиск…


Синтаксис

  • 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


Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow