Самый твердый когда-либо был на самом деле ошибкой, с которой я помогал другу. Он писал C в Visual Studio MS 2005 и забыл включать time.h. Он далее назвал время без обязательного аргумента, обычно ПУСТОЙ УКАЗАТЕЛЬ. Это неявно заявленное время как: международное время (); Это повредило стек, и абсолютно непредсказуемым способом. Это был большой объем кода, и мы не думали для взгляда в то время () призыв приблизительно к время .
На самом деле в git уже есть команда для этого:
git shortlog
в вашем случае похоже, что вас интересует эта форма:
git shortlog -sne
См. - help
для различных опций.
Вас также может заинтересовать проект GitStats . У них есть несколько примеров, в том числе статистика для проекта Git . На главной странице GitStat:
Вот список некоторых статистических данных, сгенерированных в настоящее время:
Во-первых, вы не придется извлекать что-либо (как в случае извлечения по сети), потому что у вас есть весь репозиторий и вся история локально. Я почти уверен, что есть инструменты, которые предоставят вам статистику, но иногда вы можете просто проявить творческий подход с командными строками. Например, это (только что из моей головы) даст вам количество коммитов на пользователя:
git log --pretty=format:%ae \
| gawk -- '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'
Другая статистика, которую вы запросили, может потребовать более тщательного рассмотрения. Возможно, вы захотите увидеть доступные инструменты.
Спасибо хакеру за ответ на этот вопрос. Однако я обнаружил, что эти модифицированные версии лучше подходят для моего конкретного использования:
git log --pretty=format:%an \
| awk '{ ++c[$0]; } END { for(cc in c) printf "%5d %s\n",c[cc],cc; }'\
| sort -r
(с использованием awk, поскольку у меня нет gawk на моем Mac, и сортировка с наиболее активным коммиттером наверху). Он выводит следующий список:
1205 therikss
1026 lsteinth
771 kmoes
720 minielse
507 pagerbak
269 anjohans
205 mfoldbje
188 nstrandb
133 pmoller
58 jronn
10 madjense
3 nlindhol
2 shartvig
2 THERIKSS